Performance monitoring tools for Linux
C Tcl Shell Objective-C Makefile Perl Other
Latest commit 82f1288 Feb 27, 2017 @sysstat Starting sysstat 11.5.6
Update sysstat version number in configure script.

Signed-off-by: Sebastien GODARD <sysstat@users.noreply.github.com>
Permalink
Failed to load latest commit information.
build Remove isag support Jan 15, 2017
contrib sagraph2: fix MB/s units and help typo Sep 16, 2015
cron By default sa2 now generates summary for YESTERDAY Apr 3, 2015
images Rewrite README file Jan 14, 2017
man Merge branch 'geekben-master' Feb 18, 2017
nls sysstat-11.5.5 Feb 27, 2017
tests Add new regression tests Jan 21, 2017
xml sadf: Update DTD and XSD documents Nov 14, 2016
.gitignore Add new regression tests Jan 21, 2017
.travis.yml Hook up to Travis CI Jan 18, 2017
CHANGES sysstat-11.5.5 Feb 27, 2017
COPYING Update license text Feb 9, 2016
CREDITS sysstat-11.5.2 Nov 4, 2016
FAQ.md Convert FAQ file to MarkDown format Feb 25, 2017
INSTALL First use of git system. Based on a complete sysstat 9.1.5 version. Sep 13, 2010
Makefile.in Update Makefile Feb 27, 2017
README.md Update README file Feb 25, 2017
activity.c sar: Remove memory statistics (-R switch) Jan 6, 2017
cifsiostat.c cifsiostat: Display values in human readable format Nov 17, 2016
cifsiostat.h cifsiostat: Display values in human readable format Nov 17, 2016
common.c sar/mpstat: Allow selection of a range of IRQ/CPU Nov 20, 2016
common.h sar/mpstat: Allow selection of a range of IRQ/CPU Nov 20, 2016
configure Starting sysstat 11.5.6 Feb 27, 2017
configure.in Starting sysstat 11.5.6 Feb 27, 2017
count.c sysstat-11.3.5 Jun 24, 2016
count.h Update README and copyright messages Feb 19, 2016
format.c sadf: Add new output format: raw (part 1) Dec 18, 2016
iconfig Remove isag support Jan 15, 2017
ioconf.c Replace strcpy() with strncpy() to avoid buffer overflows Aug 11, 2016
ioconf.h Remove extern keyword from functions declarations Jan 24, 2016
iostat.c Fix #134: Include <locale.h> to define setlocale() function Nov 28, 2016
iostat.h iostat: Display values in human readable format Nov 17, 2016
json_stats.c sar: Remove memory statistics (-R switch) Jan 6, 2017
json_stats.h sar: Add softnet statistics (part 1): Basic definitions and structures Oct 14, 2016
mpstat.c Fix #134: Include <locale.h> to define setlocale() function Nov 28, 2016
mpstat.h mpstat: Add "-o JSON" option Sep 14, 2016
pidstat.c Add %wait field to "pidstat -h" output Feb 18, 2017
pidstat.h Add %wait to pidstat Feb 6, 2017
pr_stats.c sar: Remove memory statistics (-R switch) Jan 6, 2017
pr_stats.h sar: Add softnet statistics (part 1): Basic definitions and structures Oct 14, 2016
prealloc.in Update README and copyright messages Feb 19, 2016
raw_stats.c Really fix insecure data handling (CID#140472) Jan 15, 2017
raw_stats.h sadf: Add new output format: raw (part 8) Jan 6, 2017
rd_sensors.c Update README and copyright messages Feb 19, 2016
rd_sensors.h Update README and copyright messages Feb 19, 2016
rd_stats.c Close #133: sar: Provide available free memory Nov 11, 2016
rd_stats.h Close #133: sar: Provide available free memory Nov 11, 2016
rndr_stats.c sar: Remove memory statistics (-R switch) Jan 6, 2017
rndr_stats.h sar: Add softnet statistics (part 1): Basic definitions and structures Oct 14, 2016
sa.h Close #138: SVG: Allow multiple charts on a row Feb 5, 2017
sa1.in Update README and copyright messages Feb 19, 2016
sa2.in Update README and copyright messages Feb 19, 2016
sa_common.c sar: Remove memory statistics (-R switch) Jan 6, 2017
sa_conv.c Update README and copyright messages Feb 19, 2016
sa_conv.h Update README and copyright messages Feb 19, 2016
sa_wrap.c sar: Add softnet statistics (part 2): Read statistics Oct 16, 2016
sadc.c Update README and copyright messages Feb 19, 2016
sadf.c sadf: Small code cleanup Feb 25, 2017
sadf.h sadf: Add new output format: raw (part 1) Dec 18, 2016
sadf_misc.c SVG: Properly terminate SVG file when no data have been found Feb 5, 2017
sar.c sar: Remove memory statistics (-R switch) Jan 6, 2017
svg_stats.c Close #138: SVG: Allow multiple charts on a row Feb 5, 2017
svg_stats.h sar: Add softnet statistics (part 1): Basic definitions and structures Oct 14, 2016
sysconfig.in Update README and copyright messages Feb 19, 2016
sysstat-11.5.5.lsm sysstat-11.5.5 Feb 27, 2017
sysstat-11.5.5.spec sysstat-11.5.5 Feb 27, 2017
sysstat.in Check for undefined UID variable in sysstat script May 28, 2016
sysstat.ioconf First use of git system. Based on a complete sysstat 9.1.5 version. Sep 13, 2010
sysstat.service.in add systemd timer units replacing cronjobs Mar 1, 2014
sysstat.sysconfig.in Fix comment in /etc/sysconfig/sysstat file Jan 21, 2017
tapestat.c tapestat: Display values in human readable format. Nov 17, 2016
tapestat.h tapestat: Display values in human readable format. Nov 17, 2016
version.in Update README and copyright messages Feb 19, 2016
xml_stats.c sar: Remove memory statistics (-R switch) Jan 6, 2017
xml_stats.h sar: Add softnet statistics (part 1): Basic definitions and structures Oct 14, 2016

README.md

sysstat - System performance tools for the Linux operating system

Coverity Scan Build Status Build Status

(C) 1999-2017 Sebastien GODARD (sysstat (at) orange (dot) fr)

Introduction

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 devices, partitions and network filesystems.
  • 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.

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.

Smart color output

  • 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 --human).
  • Graphs can be generated (SVG format - Scalable Vector Graphics) and displayed in your favorite web browser. See some sample screenshots below:

Fancy sysstat graph

Fancy sysstat graph

Sysstat is Open Source / Free Software, and is freely available under the GNU General Public License, version 2. The latest version of sysstat can always be found on my web site at:

http://pagesperso-orange.fr/sebastien.godard/

See the CHANGES file to know the new features/improvements/bug fixes added in this release of sysstat. Sysstat development can be tracked on GitHub.

Installation

Install from RHEL/Fedora/CentOS

Enter:

$ sudo yum install sysstat

CentOS and Fedora systems call the collector process using a cron job in /etc/cron.d and it's enabled by default. On recent versions, systemd is used instead of cron. You may need to enable and start the sysstat service:

$ sudo systemctl enable sysstat
$ sudo systemctl start sysstat

Install from Ubuntu

Enter:

$ sudo apt-get install sysstat

Then enable data collecting:

$ sudo vi /etc/default/sysstat
change ENABLED="false" to ENABLED="true"
save the file

Last, restart the sysstat service:

$ sudo service sysstat restart

Install from sources

Clone sysstat public repository with:

$ git clone git://github.com/sysstat/sysstat

Then configure sysstat for your system:

$ cd sysstat
$ ./configure

You can set several variables and parameters on the command line. For example you can enter the following option to activate data collecting (either using cron or systemd):

$ ./configure --enable-install-cron

Please enter "./configure --help" to display all possible options. There is another way to configure sysstat instead of entering "./configure": this is the Interactive Configuration script (iconfig) which will ask you for the value of the main sysstat variables and parameters. Enter "./iconfig" then answer the questions or enter Return to accept the (sane) default values. For yes/no questions, please answer 'y' or 'n' (without the quotes): It is case sensitive! You can also enter '?' to get a help message that will explain the meaning of each variable or parameter.

Compile and install:

$ make
$ sudo make install

Feedback welcome!

Of course tell me if there are any problems. This is the only way I can improve 'sysstat'. Please also remember to read the FAQ that comes with sysstat or available from the Wiki page on GitHub.

Patches and suggestions for improvements are always welcome! Send them to "sysstat (at) orange (dot) fr".

Support sysstat!

If you are reading this README file then you are probably about to use the sysstat tools to help you monitor your system and maybe troubleshoot some performance issues. Good choice. Sysstat is made for you. Moreover sysstat is free software and always will be.

Yet have you ever considered making a donation to sysstat, regardless of how much your contribution is? This in turn would encourage me to keep up the work as good as it can be... Oh, and it would certainly also help me explain to my wife why I spend so much time in front of my computer instead of taking care of the household ;-)

Go to my web page and click on the Donate button on the left!

Enjoy!

Sebastien GODARD - sysstat (at) orange (dot) fr