Servers Performance Monitoring =Introduction= During a load test, it is important to know the health of the servers loaded. It is also nice to see if you are targeting a cluster if the load is correctly dispatched. To address this, the plugin package now supports server monitoring! Using it, you can monitor CPU, Memory, Swap, Disks I/O and Networks I/O on almost all platforms! Here is how the plugin looks like. It shows the CPU usage of 4 servers involved in the load test:
=Metrics Collected= Since version 0.5.0 the Server Agent tool supports collecting over 75 system metrics. See full list. =How it works= ==Concept== JMeter cannot retrieve by default server metrics except Tomcat ones. To overcome this situation, we have developed a server agent which will get performance data for JMeter. The agent uses the SIGAR open source library. It is composed of a Java common part and native libraries per OS.
==Installation== Server Agent tool detailed description is placed here. =Usage= ==GUI Mode== In GUI mode, just add the listener, define servers and metric types to monitor, ensure the agent is running at remote server and is not blocked by a firewall, then run the test. The values will be displayed at real time chart. ==Non GUI Mode== If you run JMeter in non GUI mode and want to save monitoring data to file, just configure result file saving in GUI as you do with other listeners. After running the test you may load saved file into GUI and see the values timeline. ==JMeter Properties==
Common ConsiderationsPerfMon Server Agent did support only few metrics in versions up to 0.4.2. The old agent still supported in PerfMon Metrics Collector version 0.5.0+. However, version 0.5.0 ships new ServerAgent which provide over 75 separate metrics, support per-process CPU and Memory metrics and even custom metrics for measuring whatever you want: file sizes, database row counts, Java heap sizes and garbage collections. Specifying Metric ParamsPerfMon Metrics Collector has special "Metric Parameter" column,
where user can specify metric subtype to collect, specify which process
should be monitored (which filesystem, network interface).
Metric parameter string may have several parameters inside it,
separated with colon Most of the metrics accepts single parameter called 'type'. This parameter specifies which particular number you want to collect. There is default metric type for each metric category that will be collected if no 'type' parameter specified (see lists below, bold first item in each category). Some metric types are commonly used and considered primary, leaving some rarely used types as additional. Make note that not all metrics available on all platforms, we depend on SIGAR API capabilities here. Some metrics allow specifying particular object to monitor, you may specify selector parameter to monitor values only for this object: - name, pid and ptql selectors for processes - core selector for monitoring specific CPU of multicore systems - fs selector for filesystems - iface selector for network interfaces Make note that metric types are different for per-process and total metrics for CPU and Memory. Some example metric parameter strings: |