APM Server performance depends on a number of factors: memory and CPU available, network latency, transaction sizes, workload patterns, agent and server settings, versions, and protocol.
To help you understand how sizing APM Server impacts performance, we tested several scenarios:
-
Using the default hardware template on AWS, GCP and Azure on {ecloud}.
-
Comparing the performance when using OpenTelemetry (OTel) events on at least one of the service providers listed above (in this case, GCP).
-
For each hardware template, testing with several sizes: 1 GB, 4 GB, 8 GB, and 32 GB.
-
For each size, using a fixed number of APM agents: 10 agents for 1 GB, 30 agents for 4 GB, 60 agents for 8 GB, and 240 agents for 32 GB.
-
In all scenarios, using medium sized events. Events include transactions and spans.
You can use the results of our tests to guide your sizing decisions, however, performance will vary based on factors unique to your use case like your specific setup, the size of APM event data, and the exact number of agents.
Profile / Cloud | AWS | Azure | GCP (Agent) | GCP (OTel) |
---|---|---|---|---|
1 GB |
9,600 |
6,400 |
9,600 |
28,000 |
4 GB |
25,500 |
18,000 |
17,800 |
49,300 |
8 GB |
40,500 |
26,000 |
25,700 |
89,300 |
16 GB |
72,000 |
51,000 |
45,300 |
145,000 |
32 GB |
135,000 |
95,000 |
95,000 |
381,000 |
APM Server is CPU bound and larger instance types in {ecloud} come with much more computing power.
Don’t forget that the APM Server is stateless. Several instances running do not need to know about each other. This means that with a properly sized {es} instance, APM Server scales out linearly.
Note
|
RUM deserves special consideration. The RUM agent runs in browsers, and there can be many thousands reporting to an APM Server with very variable network latency. |