Server monitoring tracks the health, performance, and resource utilization of servers hosting your application. It helps identify bottlenecks, detect failures early, and ensures servers can handle the expected load during performance testing.
- To ensure servers have enough resources to handle the load.
- To identify performance bottlenecks in CPU, memory, disk, network, and processes.
- To detect errors, failures, and abnormal behavior early.
- To validate scalability, stability, and reliability of the infrastructure.
We monitor the key server resources, processes, and configurations that impact application performance.
Key Server Metrics and Counters
These counters help in evaluating server performance and identifying bottlenecks.
Detailed Server Counters
Monitor the following detailed counters during performance testing.
| Category | Counter / Metric | Description | Why It Matters | Threshold / Recommendation |
|---|---|---|---|---|
| CPU Utilization (%) | Total CPU usage percentage | High CPU causes slow response and request queuing. | < 80% | |
| CPU Load (1/5/15 min) | Average CPU load over 1, 5, 15 minutes | Indicates overall system load. | < CPU Core Count | |
| Context Switches/sec | Number of context switches per second | High value indicates CPU thrashing. | Monitor for unusual spikes | |
| Interrupts/sec | Number of interrupts per second | High interrupts can impact performance. | Monitor for unusual spikes | |
| Memory Utilization (%) | Percentage of memory used | High memory usage can cause swapping. | < 80% | |
| Available Memory (MB) | Available physical memory | Low memory leads to performance degradation. | > 20% of Total | |
| Pages/sec | Rate of memory pages read from/written to disk | High pages/sec indicates memory pressure. | Monitor for spikes | |
| Swap Usage (MB) | Amount of memory in swap | High swap usage severely impacts performance. | Should be 0 or minimal | |
| Disk Utilization (%) | Total disk busy time | High disk utilization slows down I/O operations. | < 80% | |
| Disk Read/Write (MB/s) | Disk read/write throughput | High values indicate heavy disk load. | Monitor trend | |
| Disk Queue Length | Number of requests waiting for disk | High queue length increases response time. | < 2 (ideally) | |
| Disk Latency (ms) | Average disk response time | High latency impacts application performance. | < 20 ms (ideally) | |
| Network In (Mbps) | Incoming network traffic | High incoming traffic may cause saturation. | < 80% of NIC Capacity | |
| Network Out (Mbps) | Outgoing network traffic | High outgoing traffic may cause saturation. | < 80% of NIC Capacity | |
| Packets In/sec | Incoming packets per second | High packet rate may impact performance. | Monitor trend | |
| Network Errors | Dropped/errored packets | Errors cause retransmissions and latency. | Should be 0 | |
| System Uptime | Time since last server restart | Frequent restarts indicate stability issues. | High uptime expected | |
| Processes Count | Total number of running processes | Too many processes may consume resources. | Monitor trend | |
| Threads Count | Total number of threads | High thread count may lead to contention. | Monitor trend | |
| System Errors | System level errors | Indicates issues impacting server health. | Should be 0 |
Real-Time Monitoring (Examples)
Alerts & Thresholds
| Metric | Warning Threshold | Critical Threshold | Action |
|---|---|---|---|
| CPU Utilization (%) | 70% | 90% | Scale up / Optimize process |
| Memory Utilization (%) | 70% | 90% | Increase memory / Optimize application |
| Disk Utilization (%) | 70% | 90% | Optimize I/O / Add more disk |
| Network Utilization (%) | 70% | 90% | Optimize traffic / Increase bandwidth |
| Disk Queue Length | > 1 | > 5 | Investigate I/O bottleneck |
| Load Average (1 min) | > Core Count | > Core Count * 2 | Scale up / Optimize load |
Best Practices for Server Monitoring
Monitor continuously during tests and in production.
Set realistic thresholds based on server capacity and workload.
Correlate server metrics with application and response metrics.
Use alerts to detect issues early and take action. Analyze trends, not just single point values.