Azure Monitor Agent Performance Benchmark
The agent can handle many thousands of events per second in the gateway event forwarding scenario. The exact throughput rate depends on various factors such as the size of each event, the specific data type, and physical hardware resources. This article describes the Microsoft internal benchmark used for testing the agent throughput of 10k Syslog events in the forwarder scenario. The benchmark results should provide a guide to size the resources that you need in your environment.
Note
The results in this article are informational about the performance of AMA in the forwarding scenario only and do not constitute any service agreement on the part of Microsoft.
Best practices for agent as a forwarder.
- Each AMA is limited to ingesting 20k EPS, and drops any data that exceeds the limits.
- The forwarder should be on a dedicated system to eliminate potential interference from other workloads.
- The forwarder system should be monitored for CPU, memory, and disk utilization to prevent overloads from causing data loss.
- Where possible use a load balancer and redundant forwarder systems to improve reliability and scalability.
- For other considerations for forwarders, see the Log Analytics Gateway documentation.
Agent Performance
The benchmark is run in a controlled environment to get repeatable, accurate, and statistically significant results. The resources consumed by the agent are measured under a load of 10,000 simulated Syslog events per second. The simulated load is run on the same physical hardware that the agent under test is on. Test trials are run for seven days. For each trial, performance metrics are sampled every second to collect CPU, memory, and network maximum and average usage. This approach provides the right information to help you estimate the resources needed for your environment.
Note
The results do not measure the end-to-end throughput ingested by a Log Analytics Workspace (or other telemetry sinks), as there may be end-to-end variability due to network and backend pipeline performance.
The benchmarks are run on an Azure VM Standard_F8s_v2 system using AMA Linux version 1.25.2 and 10 GB of disk space for the event cache.
- vCPU’s: 8 with HyperThreading (800% CPU is possible)
- Memory: 16 GiB
- Temp Storage: 64 GiB
- Max Disk IOPS: 6400
- Network: 12500 Mbp Max on all 4 physical NICs
Results
Perf Metric | Ave (Max) Med |
---|---|
CPU % | 51 (262) |
Mem RSS MB | 276 (1,017) |
Network KBps | 338 (18,033) |
Frequently asked questions
This section provides answers to common questions.
How much data is sent per agent?
The amount of data sent per agent depends on:
- The solutions you've enabled.
- The number of logs and performance counters being collected.
- The volume of data in the logs.
See Analyze usage in a Log Analytics workspace.
For computers that are able to run the WireData agent, use the following query to see how much data is being sent:
WireData
| where ProcessName == "C:\\Program Files\\Microsoft Monitoring Agent\\Agent\\MonitoringHost.exe"
| where Direction == "Outbound"
| summarize sum(TotalBytes) by Computer
How much network bandwidth is used by the Microsoft Monitoring Agent when it sends data to Azure Monitor?
Bandwidth is a function of the amount of data sent. Data is compressed as it's sent over the network.
Next steps
- Connect computers without internet access by using the Log Analytics gateway in Azure Monitor
- Install the Azure Monitor Agent on Windows and Linux virtual machines.
- Create a data collection rule to collect data from the agent and send it to Azure Monitor.