The sysstat package contains the sar, sadf, iostat, nfsiostat, cifsiostat, mpstat, and pidstat commands for Linux. The sar command collects and reports system activity information. The statistics reported by sar concern I/O transfer rates, paging activity, process-related activites, interrupts, network activity, memory and swap space utilization, CPU utilization, kernel activities, and TTY statistics, among others. The sadf command may be used to display data collected by sar in various formats. The iostat command reports CPU statistics and I/O statistics for tty devices and disks. The pidstat command reports statistics for Linux processes. The mpstat command reports global and per-processor statistics. The nfsiostat command reports I/O statistics for network filesystems. The cifsiostat command reports I/O statistics for CIFS filesystems.
| Tags | Monitoring Systems Administration |
|---|---|
| Licenses | GPL |
| Operating Systems | POSIX Linux |
| Implementation | C |
Recent releases


Release Notes: mpstat now takes into account every interrupt per processor so that their number adds up to the number displayed for CPU "all". The systemd unit file could no longer be installed because a macro wasn't expanded in the configure script. This is now fixed.


Release Notes: sar, pidstat, and mpstat now stop and display their average statistics when they receive a SIGINT signal (crtl/c). pidstat now displays the task's UID for all tasks. The option -U has been added to pidstat; this option tells it to display the username of the task instead of its UID. When this option is followed by a user name, only tasks belonging to the specified user are displayed by pidstat.


Release Notes: Network and IPv4/IPv6 counters have changed to 64-bit format to keep in sync with recent kernels. A new option has been added to iostat to prevent it from displaying its first report with statistics since system boot. Several bugs have been fixed.


Release Notes: A new field has been added to sar -u and mpstat: %gnice (time spent running a niced guest). A new field has been added to sar -r: kbdirty (amount of memory waiting to get written back to disk). Support has been added for the systemd service manager. The sysstat init script has been updated to make it better conform to the LSB.


Release Notes: Option -[0-9]+ has been added to sar to show the data of that many days ago. iostat and sar have persistent device names support. A new option (-t) has been added to sadf: This option tells sadf to display the timestamps in the local time of the data file creator instead of UTC.
Recent comments
02 Sep 2007 02:40
Re: report sar7.16 problem and attach patch for it
Thanks for this patch. It has been included in sysstat 8.0.0.
02 Aug 2007 00:30
report sar7.16 problem and attach patch for it
Hello, Mr.Sebastien Godard .
When I used sar7.16,I found a problem.
After adding the parameters "-s 23:59:45 -e 00:00:15",it means sar will read the records at 23:59:45~00:00:15 from sarfile,but
the result is that sar only read the records at 23:59:45-23:59:55 from sarfile,the records after 00:00:00 didn't read from sarfile.
I have made a patch to solve the problem.
To repeat this problem,you could do as following:
Step1:run the script
----------------------------------------------------------------------
#!/bin/sh
DATE=`date +%m%d%H%M%S`
date -s 23:59:45
echo "Now time has been set "`date`
echo "Sar starts to write in sar.$DATE "
sar 5 10 -o ./sar.$DATE
hwclock --hctosys
-----------------------------------------------------------------------
After running,it will create a sarfile.
Step2:read created sarfile
Sar Version: sar 7.16
[root@localhost sysstat-7.1.6]# sar -V
sysstat version 7.1.6
(C) Sebastien Godard (sysstat <at> wanadoo.fr)
[root@localhost sysstat-7.1.6]# sar -f testsar/sar.0810000205
Linux (localhost.localdomain) 08/10/2007
23:59:45 CPU %user %nice %system %iowait %steal %idle
23:59:50 all 4.19 0.00 6.59 0.00 0.00 89.22
23:59:55 all 8.02 0.20 11.42 0.00 0.00 80.36
00:00:00 all 5.59 0.00 9.58 0.00 0.00 84.83
00:00:05 all 4.60 0.40 6.60 0.00 0.00 88.40
00:00:10 all 4.61 0.00 6.61 0.00 0.00 88.78
00:00:15 all 3.99 0.20 9.58 2.20 0.00 84.03
00:00:20 all 4.80 0.20 8.20 0.60 0.00 86.20
00:00:25 all 4.39 0.20 6.39 0.00 0.00 89.02
00:00:30 all 4.21 0.00 7.62 0.00 0.00 88.18
00:00:35 all 4.39 0.20 7.39 0.20 0.00 87.82
00:00:40 all 4.20 0.20 7.40 0.00 0.00 88.20
00:00:45 all 7.80 0.00 9.20 1.00 0.00 82.00
Average: all 5.06 0.13 8.05 0.33 0.00 86.42
Created sarfile starts with 23:59:45 ends with 00:00:45
Step3:Problem turn out
[root@localhost sysstat-7.1.6]# sar -f testsar/sar.0810000205 -s 23:59:45 -e 00:00:15
Linux (localhost.localdomain) 08/10/2007
The bug can be fixed with the following patch:
Signed-off-by: "Yu Yongcong" <yuyc@cn.fujitsu.com>
--- sysstat-7.1.6/sar.c.orig 2007-08-14 08:09:28.000000000 +0800
+++ sysstat-7.1.6/sar.c 2007-08-14 10:13:47.000000000 +0800
@@ -840,6 +840,13 @@
set_timestamp(!curr, cur_time[!curr], 16);
/* Set current timestamp */
set_timestamp(curr, cur_time[curr], 16);
+
+ if (tm_start.use && file_stats[!curr].ust_time
+ && (file_stats[curr].ust_time > file_stats[!curr].ust_time)
+ && (file_stats[curr].hour < file_stats[!curr].hour)) {
+ file_stats[curr].hour += 24;
+ rectime.tm_hour += 24;
+ }
/* Check time (2) */
if (use_tm_start && (datecmp(&rectime, &tm_start) < 0))
@@ -1622,6 +1629,9 @@
((interval < 0) && !from_file[0] && !to_file[0]))
set_default_file(&rectime, from_file);
+ if (tm_start.use && tm_end.use && (tm_end.tm_hour < tm_start.tm_hour))
+ tm_end.tm_hour += 24;
+
/*
* Check option dependencies
*/
Here is the output after the fix:
[root@localhost sysstat-7.1.6]#sar -f testsar/sar.0810000205 -s 23:59:45 -e 00:00:15
Linux (localhost.localdomain) 08/10/2007
23:59:45 CPU %user %nice %system %iowait %steal %idle
23:59:50 all 4.19 0.00 6.59 0.00 0.00 89.22
23:59:55 all 8.02 0.20 11.42 0.00 0.00 80.36
00:00:00 all 5.59 0.00 9.58 0.00 0.00 84.83
00:00:05 all 4.60 0.40 6.60 0.00 0.00 88.40
00:00:10 all 4.61 0.00 6.61 0.00 0.00 88.78
00:00:15 all 3.99 0.20 9.58 2.20 0.00 84.03
Average: all 5.16 0.13 8.40 0.37 0.00 85.94
That's all.
Best Regards.
28 Dec 2004 13:18
Re: fix for spec file
OK: spec file updated with sysstat 5.1.4.
17 Dec 2004 13:30
Re: compile errors on 2.6
> Hey, just tried to do an rpmbuild
> --rebuild on 5.1.3
>
> noticed that the build failed because
> MAX_BLKDEV isn't defined for 2.6
> kernels, for some reason it was removed
> from major.h.
Yes: MAX_BLKDEV was removed from linux/major.h in 2.6 kernels. Sysstat 5.1.4 has been updated to take this into account.
17 Dec 2004 13:26
Re: after all that, sar doesn't work
> pseries-loaner:/usr/src/packages/SOURCES/sysstat-5.1.3
> # ./sar -u 2 5
> exec: No such file or directory
>
This is because sar tries to launch its data collector (sadc) and doesn't find it. Enter "make install" after compiling to install each component in its directory before using sar.
A grep-like search tool optimized for searching large heterogeneous trees of source code.