sysstat – System performance tools for the Linux operating system
The sysstat package contains various utilities, common to many commercial Unixes, to monitor system performance and usage activity:
- iostat reports CPU statistics and input/output statistics for block devices and partitions.
- mpstat reports individual or combined processor related statistics.
- pidstat reports statistics for Linux tasks (processes): I/O, CPU, memory, etc.
- tapestat reports statistics for tape drives connected to the system.
- cifsiostat reports CIFS statistics.
Sysstat also contains tools you can schedule via cron or systemd to collect and historize performance and activity data:
- sar collects, reports and saves system activity information (see below a list of metrics collected by sar).
- sadc is the system activity data collector, used as a backend for sar.
- sa1 collects and stores binary data in the system activity daily data file. It is a front end to sadc designed to be run from cron or systemd.
- sa2 writes a summarized daily activity report. It is a front end to sar designed to be run from cron or systemd.
- sadf displays data collected by sar in multiple formats (CSV, XML, JSON, etc.) and can be used for data exchange with other programs. This command can also be used to draw graphs for the various activities collected by sar using SVG (Scalable Vector Graphics) format.
The default sampling interval is 10 minutes but this can be changed of course (it can be as small as 1 second).
System statistics collected by sar:
- Input / Output and transfer rate statistics (global, per device, per partition and per network filesystem)
- CPU statistics (global and per CPU), including support for virtualization architectures
- Memory, hugepages and swap space utilization statistics
- Virtual memory, paging and fault statistics
- Process creation activity
- Interrupt statistics (global, per CPU and per interrupt, including potential APIC interrupt sources, hardware and software interrupts)
- Extensive network statistics: network interface activity (number of packets and kB received and transmitted per second, etc.) including failures from network devices; network traffic statistics for IP, TCP, ICMP and UDP protocols based on SNMPv2 standards; support for IPv6-related protocols
- Fibre Channel traffic statistics
- Software-based network processing (softnet) statistics
- NFS server and client activity
- Sockets statistics
- Run queue and system load statistics
- Kernel internal tables utilization statistics
- Swapping statistics
- TTY devices activity
- Power management statistics (instantaneous and average CPU clock frequency, fans speed, devices temperature, voltage inputs)
- USB devices plugged into the system
- Filesystems utilization (inodes and blocks)
Sysstat key features:
- Display average statistics values at the end of the reports.
- On-the-fly detection of new devices (disks, network interfaces, etc.) that are created or registered dynamically.
- Support for UP and SMP machines, including machines with hyperthreaded or multi-core processors.
- Support for hotplug CPUs (it detects automagically processors that are disabled or enabled on the fly) and tickless CPUs.
- Works on many different architectures, whether 32- or 64-bit.
- Needs very little CPU time to run (written in C).
- System statistics collected by sar/sadc can be saved in a file for future inspection. You can configure the length of data history to keep. There is no limit for this history length but the available space on your storage device.
- System statistics collected by sar/sadc can be exported in various different formats (CSV, XML, JSON, SVG, etc.). DTD and XML Schema documents are included in sysstat package. JSON output format is also available for mpstat and iostat commands.
- Smart color output for easier statistics reading.
- Internationalization support (sysstat has been translated into numerous different languages). Sysstat is now part of the Translation Project.
- Sysstat commands can automatically select the unit used to display sizes for easier reading (see option
- Graphs can be generated (SVG format – Scalable Vector Graphics) and displayed in your favorite web browser. See some sample screenshots below:
Sysstat 12.5.1 was released.
* sar/sadf: Make option -j work with filesystems statistics.
* sa1: Add “–rotate” option to make it easier to handle file rotation.
* [Petr Pavlu]: Workaround for iowait being decremented [12.4.1].
* [SacValleyTech]: Make sure setbuf() is the first operation performed on stream [12.4.1].
* [Michal Berger]: Fix typo in PHYS_PACK_ID definition [12.4.1].
* sadc: Rework softnet stats reading procedure to make sure that all lines from /proc/net/softnet_stat are actually read.
* sadc: Don’t reallocate structures if buffers are large enough.
* configure: Fix option –disable-compress-manpg [12.4.1].
* sar: Update definition for runq-sz metric in manual page [12.4.1].
* iostat: Update manual page (explain “*_w+d*” fields) [12.4.1].
* iostat: Explain options -f/+f in manual page [12.4.1].
* [Nan Xiao]: mpstat: Add -T option in help message [12.4.1].
* [Nan Xiao]: mpstat: Fix typo in manual page [12.4.1].
* FAQ.md file: Add missing spaces at end of line [12.4.1].
* FAQ updated.
* sa1 manual page updated.
* Add a sponsor button to GitHub page.
* systest: Small fix for array index value.
* Makefile: Rename object files used by sadc.
* Add new non regression tests and updated some existing ones.
* Simplify/merge non regression tests.
* NLS translations updated.