Fleet Server scalability
editFleet Server scalability
editThis page summarizes the resource and Fleet Server configuration requirements needed to scale your deployment of Elastic Agents. To scale Fleet Server, you need to modify settings in your deployment and the Fleet Server agent policy.
First modify your Fleet deployment settings in Elastic Cloud:
- Log in to Elastic Cloud and go to your deployment.
- Under Deployments > deployment name, click Edit.
-
Under Integrations Server:
- Modify the compute resources available to the server to accommodate a higher scale of Elastic Agents
- Modify the availability zones to satisfy fault tolerance requirements
For recommended settings, refer to Scaling recommendations (Elastic Cloud).
Next modify the Fleet Server configuration by editing the agent policy:
- In Fleet, click Agent Policies. Click on the Elastic Cloud agent policy to edit it.
-
Open the Actions menu and select Edit integration.
-
Under Fleet Server, modify Max Connections and other advanced settings as described in Scaling recommendations (Elastic Cloud).
Advanced Fleet Server options
editThe following advanced settings are available to fine tune your Fleet Server deployment.
-
cache
-
-
num_counters
- Size of the hash table. Best practice is to have this set to 10x max connections.
-
max_cost
- Total size of the cache.
-
-
server.limits
-
-
policy_throttle
- How often a new policy is rolled out to the agents.
-
checkin_limit.interval
- How fast the agents can check in to the Fleet Server.
-
checkin_limit.burst
-
Burst of check-ins allowed before falling back to the rate defined by
interval
. -
checkin_limit.max
- Maximum number of agents.
-
artifact_limit.max
- Maximum number of agents that can call the artifact API concurrently. It allows the user to avoid overloading the Fleet Server from artifact API calls.
-
artifact_limit.interval
- How often artifacts are rolled out. Default of 100ms allows 10 artifacts to be rolled out per second.
-
artifact_limit.burst
- Number of transactions allowed for a burst, controlling oversubscription on outbound buffer.
-
ack_limit.max
- Maximum number of agents that can call the Ack API concurrently. It allows the user to avoid overloading the Fleet Server from Ack API calls.
-
ack_limit.interval
- How often an acknowledgment (ACK) is sent. Default value of 10ms enables 100 ACKs per second to be sent.
-
ack_limit.burst
-
Burst of ACKs to accommodate (default of 20) before falling back to the rate
defined in
interval
. -
enroll_limit.max
- Maximum number of agents that can call the Enroll API concurrently. This setting allows the user to avoid overloading the Fleet Server from Enrollment API calls.
-
enroll_limit.interval
- Interval between processing enrollment request. Enrollment is both CPU and RAM intensive, so the number of enrollment requests needs to be limited for overall system health. Default value of 100ms allows 10 enrollments per second.
-
enroll_limit.burst
-
Burst of enrollments to accept before falling back to the rate defined by
interval
.
-
Scaling recommendations (Elastic Cloud)
editThe following tables provide resource requirements and scaling guidelines based on the number of agents required by your deployment:
Resource requirements by number of agents
editNumber of Agents | Memory | vCPU | Elasticsearch Cluster size |
---|---|---|---|
50 |
512MB |
Up to 2.5 vCPU |
480GB disk | 16GB RAM | up to 5 vCPU |
5,000 |
1GB |
Up to 2.5 vCPU |
960GB disk | 32GB RAM | 5 vCPU |
7,500 |
2GB |
Up to 2.5 vCPU |
1.88TB disk | 64GB RAM | 9.8 vCPU |
10,000 |
4GB |
Up to 2.5 vCPU |
3.75TB disk | 128GB RAM | 19.8 vCPU |
12,500 |
8G |
Up to 2.5 vCPU |
7.5TB disk | 256GB RAM | 39.4 vCPU |
30,000 |
16GB |
2.5 vCPU |
7.5TB disk | 256GB RAM | 39.4 vCPU |
50,000 |
32GB |
2.5 vCPU |
11.25TB disk | 384GB RAM |59.2 vCPU |
Recommended settings by number of deployed Elastic Agents
editYou might need to scroll to the right to see all the table columns.
50 |
5,000 |
7,500 |
10,000 |
12,500 |
30,000 |
50,000 |
|
Max Connections |
100 |
7,000 |
10,000 |
20,000 |
32,000 |
32,000 |
32,000 |
Cache settings |
|||||||
|
2000 |
20000 |
40000 |
80000 |
160000 |
160000 |
320000 |
|
2097152 |
20971520 |
50971520 |
104857600 |
209715200 |
209715200 |
209715200 |
Server limits |
|||||||
|
200ms |
50ms |
10ms |
5ms |
5ms |
2ms |
5ms |
|
|||||||
|
50ms |
5ms |
2ms |
1ms |
500us |
500us |
500us |
|
25 |
500 |
1000 |
2000 |
4000 |
4000 |
4000 |
|
100 |
5001 |
7501 |
10001 |
12501 |
15001 |
25001 |
|
|||||||
|
100ms |
5ms |
2ms |
1ms |
500us |
500us |
500us |
|
10 |
500 |
1000 |
2000 |
4000 |
4000 |
4000 |
|
10 |
1000 |
2000 |
4000 |
8000 |
8000 |
8000 |
|
|||||||
|
10ms |
4ms |
2ms |
1ms |
500us |
500us |
500us |
|
20 |
500 |
1000 |
2000 |
4000 |
4000 |
4000 |
|
20 |
1000 |
2000 |
4000 |
8000 |
8000 |
8000 |
|
|||||||
|
100ms |
20ms |
10ms |
10ms |
10ms |
10ms |
10ms |
|
5 |
50 |
100 |
100 |
100 |
100 |
100 |
|
10 |
100 |
200 |
200 |
200 |
200 |
200 |
Server runtime settings |
|||||||
|
20 |
20 |
20 |
20 |
20 |
20 |
20 |