Hardware performance monitoring is an integral part of load testing. Along with analysis of the application behavior under load, you need to control the resource usage on the server and find bottlenecks (CPU, disk IO, memory or network) that may limit the server performance. This topic provides information on the basic metrics used to measure the server hardware performance and explains how to use special hardware counters for the measurement.
Hardware Performance Metrics to Monitor
To control the hardware performance of the tested web server, you can measure the following metrics:
-
Processor: processor usage, interrupts, context switches, and so on.
-
Memory: amount of available physical and virtual memory, cache memory usage, page read rates, and so on.
-
Network: received/sent and total bytes transferred over the network and each network adapter per second, protocol activity, and so on.
-
Disk: amount and rate of read/write disk activity.
LoadComplete provides you with the ability to measure the mentioned metrics by using special hardware counters. For more information on them, see below.
Counters to Use
LoadComplete includes four predefined counters that help you monitor hardware resources:
-
% CPU - The percentage of the elapsed time the processor spends to execute non-idle threads.
-
% Memory - The percentage of the currently used memory. This counter is available only on Windows-based hosts.
-
Memory (MB) - The amount of currently used memory (in megabytes). This counter is available only on Windows-based hosts.
-
% Disk time - The percentage of the elapsed time all the disk drives were busy processing read and write requests during the test run. This counter is available only on Windows-based hosts.
These counters are provided by the Standard counters provider.
Besides the predefined counters, you can also use custom server counters to measure hardware resources the tested web application consumes.
LoadComplete can obtain system metrics from Windows and UNIX-based hosts as well as from Apache servers. Below are lists of counters used for monitoring hardware performance of these servers.
Windows-Based Server Counters
Processor
-
% Processor Time
Category: Processor
The percentage of time the processor actually spends working on productive threads.
-
% Privileged Time
Category: Processor
The percentage of time a thread runs in the privileged mode.
-
% Interrupt Time
Category: Processor
The percentage of time the processor spends receiving and servicing hardware interrupts.
-
Processor Queue Length
Category: System
The instantaneous size of the queue for all processors at the moment the measurement was taken.
-
Context Switches/sec
Category: System
The number of context switches generated per second.
Memory
-
Available Mbytes
Category: Memory
The amount of physical memory available to processes running on the computer.
-
Page Reads/sec
Category: Memory
The rate at which the disk was read to resolve hard page faults.
-
Pages/sec
Category: Memory
The rate at which pages are read from or written to disk to resolve hard page faults.
-
Pool Nonpaged Bytes
Category: Memory
The size of the nonpaged pool in bytes.
-
Pool Nonpaged Failures
Category: Server
The number of times allocations from the nonpaged pool failed.
-
Server : Pool Paged Failures
Category: Server
The number of times allocations from the paged pool failed.
-
Server : Pool Nonpaged Peak
Category: Server
The maximum number of bytes in the nonpaged pool the server had in use at any one point.
-
Memory : Cache Bytes
Category: Memory
The size of the static files cache.
-
Memory : Cache Faults/sec
Category: Memory
The rate of cache faults.
-
Cache : MDL Read Hits %
Category: Cache
The percentage of Memory Descriptor List (MDL) Read requests to the file system cache.
Network
-
Bytes Total/sec
Category: Network Interface
The rate at which bytes are sent and received over each network adapter.
-
Bytes Received/sec
Category: Network Interface
The rate at which bytes are received over each network adapter.
-
Bytes Sent/sec
Category: Network Interface
The rate at which bytes are sent over each network adapter.
-
Bytes Total/sec
Category: Server
The number of bytes sent and received over the network.
-
Segments Received/sec
Category: Protocol_Object
The rate at which segments are received for the protocol.
-
Segments Sent/sec
Category: Protocol_Object
The rate at which segments are sent.
-
% Interrupt Time
Category: Processor
The percentage of time the processor spends receiving and servicing hardware interrupts. This value is an indirect indicator of the activity of devices that generate interrupts, such as network adapters.
Disk
-
Avg. Disk Queue Length
Category: PhysicalDisk
The average number of both read and write requests that were queued for the selected disk during the sample interval.
-
Avg. Disk Read Queue Length
Category: PhysicalDisk
The average number of read requests that were queued for the selected disk during the sample interval.
-
Avg. Disk Write Queue Length
Category: PhysicalDisk
The average number of write requests that were queued for the selected disk during the sample interval.
-
Avg. Disk sec/Read
Category: PhysicalDisk
The average time, in seconds, of a read of data from the disk.
-
Avg. Disk sec/Transfer
Category: PhysicalDisk
The time, in seconds, of the average disk transfer.
-
Disk Writes/sec
Category: PhysicalDisk
The rate of write operations on the disk.
Unix-Based Server Counters
Processor
- Percentage User CPU Time - The percentage of the CPU time taken up executing user commands. This counter shows the CPU usage per user across all the processors globally.
- Percentage Nice CPU Time - The percentage of the CPU time for all processors globally taken up by low-priority processes. The time taken up by "nice" tasks is already taken into account in the Percentage System CPU Time and Percentage User CPU Time counters.
- Percentage System CPU Time - The percentage of the CPU time for all processors globally taken up executing system tasks, including system calls to kernel routines.
- Percentage Idle CPU Time - The percentage of the CPU time the processor was idle. This counter shows the CPU idleness across all the processors globally.
- Interrupt count - The number of interruptions per second.
- Context switch count - The number of processor context changes per second.
Memory
- Memory Pages Paged In - The number of pages moved from the disk into the cache memory.
- Memory Pages Paged Out - The number of pages moved from the cache memory to the disk.
- Memory Pages Swapped In - The number of pages moved from swap space to storage space.
- Memory Pages Swapped Out - The number of pages moved from storage space to swap space.
Network
- Network In Packets Count - The number of network packets entering per second.
- Network Out Packets Count - The number of network packets exiting per second.
Disk
- Rate of Disk Transfers - The number of disk transfers per second.
Apache Server Counters
- CPU Load - The percentage of the CPU the Apache software is using.
- Bytes/Sec - The amount of data the web server is transferring per second.
Including Counters Into Monitoring Tasks
To monitor a counter value, you need to include it into the monitoring tasks. For detailed information on this, see Managing Server-Side Performance Counters.
Note: | You need to include the counter into the counter list before running your load tests. |
For detailed information on server performance counters, see topics of the Server Monitoring section.
See Also
Typical Use Cases
About Server Monitoring
Server Monitoring
About Test Results