"Fossies" - the Fresh Open Source Software Archive

Member "sysstat-12.2.2/FAQ.md" (1 May 2020, 32849 Bytes) of package /linux/misc/sysstat-12.2.2.tar.xz:


As a special service "Fossies" has tried to format the requested source page into HTML format (assuming markdown format). Alternatively you can here view or download the uninterpreted source code file. A member file download can also be achieved by clicking within a package contents listing on the according byte size field. See also the last Fossies "Diffs" side-by-side code changes report for "FAQ.md": 12.2.0_vs_12.2.1.

Welcome to the sysstat’s Frequently Asked Questions!

Table of contents

1. General questions

1.1. When I compile sysstat, it fails with the following message: make: msgfmt: Command not found
1.2. When I try to compile sysstat, it fails and says it cannot find some include files.
1.3. I don’t understand why sysstat displays the time sometimes as HH:MM:SS and sometimes as HH:MM:SS AM/PM

2. Questions related to sar, sadc and sadf

2.1. The sar command complains with the following message: Invalid system activity file: ...
2.2. The sar command complains with the following message: Cannot append data to that file (...)
2.3. The sar command complains with the following message: Inconsistent input data
2.4. I get the following error message when I try to run sar: Cannot open /var/log/sa/sa30: No such file or directory
2.5. Are sar daily data files fully compatible with Sun Solaris format sar files?
2.6 The Average: results from the sar command are just rubbish…
2.7. My database (e.g. MySQL) doesn’t appear to understand the time zone displayed by ‘sadf -d’…
2.8. I tried to use options -s and -e with sadf. Unfortunately, I have nothing displayed at all / the output doesn’t match that of sar. 2.9. I cannot see all my disks when I use the sar -d command…
2.10. Do you know a tool which can graphically plot the data collected by sar?
2.11. When I launch sadc, I get the error message: flock: Resource temporarily unavailable
2.12. How should I run sysstat / sar so that I get a reading for 00:00:00?
2.13. The sar command complains with the following message: Requested activities not available in file ...
2.14. Does sar need a lot of resources to run?
2.15. Are the measurements gathered by sadc cumulative or instantaneous?
2.16. Some fields are always displayed as 0.00 when I use the sar -d command.
2.17. The sar command complains with the following message: Requested activities not available
2.18. How can I keep sar data for more than one month?
2.19. How can I load sar data into an Oracle database for performance analysis and capacity planning?
2.20. The sar command displays some weird output values…
2.21. What happened to sar’s options -h, -H, -x and -X?
2.22. What is the exact meaning of the count parameter for sar and sadc?
2.23. Why doesn’t sar deal with sub-second sampling/monitoring?
2.24. Is it possible to make sadc save only some specific activities in my binary daily data files? 2.25. The sar and/or sadf command complain(s) with the following message: End of system activity file unexpected

3. Questions related to iostat

3.1. I can’t see all my disks when I use the iostat command…
3.2. iostat -x doesn’t report disk I/O statistics…
3.3. Why can’t iostat display extended statistics for partitions with 2.6.x kernels?
3.4. I don’t understand the output of iostat. It doesn’t match what I expect it to be…
3.5. Why values displayed by iostat are so different in the first report from those displayed in subsequent ones?
3.6. iostat -x displays huge numbers for some fields…

4. Questions related to pidstat

4.1. pidstat -d doesn’t report task I/O statistics…
4.2. The pidstat command complains with the following message: Requested activities not available
4.3. pidstat doesn’t display statistics for process (task) xyz
4.4. I noticed that the total CPU utilization for threads running on an individual CPU can exceed 100%…


1. General questions

1.1. When I compile sysstat, it fails with the following message:

make: msgfmt: Command not found
make: ***[locales] Error 127

A: The msgfmt command belongs to the GNU gettext package. If you don’t have it on your system, just configure sysstat with NLS disabled like this:

$ ./configure --disable-nls

or answer ‘y’ (for “yes”) to the question

Disable National Language Support (NLS)? (y/n) [--disable-nls]

if you use the Interactive Configuration script (iconfig), then compile sysstat as usual (make ; make install).

Please read the README-nls file included in sysstat source package to learn some more about National Language Support.

1.3. I don’t understand why sysstat displays the time sometimes as HH:MM:SS and sometimes as HH:MM:SS AM/PM

A: The time format used by sysstat tools depends on the locale of your system. The locale is defined by several environment variables, among which the LANG variable is perhaps the most widely used. See the following example:

$ export LANG=en_US
$ sar
Linux 2.4.9 (brooks.seringas.fr)        07/20/04

04:32:11 PM       LINUX RESTART

05:00:00 PM       CPU     %user     %nice   %system   %iowait     %idle
05:10:00 PM       all      0.24      0.00     89.64      0.00     10.12
Average:          all      0.24      0.00     89.64      0.00     10.12

$ export LANG=fr_FR
$ sar
Linux 2.4.9 (brooks.seringas.fr)        20.07.2004

16:32:11          LINUX RESTART

17:00:00          CPU     %user     %nice   %system   %iowait     %idle
17:10:00          all      0,24      0,00     89,64      0,00     10,12
Moyenne:          all      0,24      0,00     89,64      0,00     10,12

As you can notice, the time format but also the date, the decimal point, and even some words (like “Average”) have changed according to the specified locale.

2.2. The sar command complains with the following message:

Cannot append data to that file (...)

A: The internal structure of the data file does not allow sar to append data to it. The data file may come from another machine, or the components of the current box, such as the number of processors, may have changed. Use another data file, or delete the current daily data file, and try again.
With sysstat version 10.1.3 and later, it is now possible to append data to a data file even if the number of processors has changed. But first, you have to make the data file aware of this change by inserting a restart mark (this is typically done when sadc is called at system restart). You can then append data to the data file as usual.

2.4. I get the following error message when I try to run sar:

Cannot open /var/log/sa/sa30: No such file or directory

A: Please read the sar(1) manual page! Daily data files are created by default in the /var/log/sa directory using the data collector (sadc) or using option -o with sar. Once they are created, sar can display statistics saved in those files.
But sar can also display statistics collected “on the fly”: Just enter the proper options on the command line to indicate which statistics are to be displayed, and also specify interval and count numbers, e.g.:

# sar 2 5       --> will report CPU utilization every two seconds, five times.
# sar -n DEV 3  --> will report network device utilization every 3 seconds, in an infinite loop.

2.6. The Average: results from the sar command are just rubbish, e.g.:

 11:00:00 AM       CPU     %user     %nice   %system     %idle
 11:10:00 AM       all      0.54      0.00      0.89     98.57
 11:20:01 AM       all      3.02      8.05     22.85     66.08
 11:30:01 AM       all      8.15      0.00      2.31     89.54
 11:40:01 AM       all      8.03      0.00      2.42     89.55
 11:50:01 AM       all     16.04      0.00      2.81     81.16
 12:00:00 PM       all     21.11      0.00      3.23     75.66
 03:40:01 PM       all    100.01    100.01    100.01      0.00
 04:40:00 PM       all    100.00      0.00    100.00      0.00
 04:50:00 PM       all      5.87      0.00      1.26     92.87
 05:00:00 PM       all      4.70      0.00      1.48     93.82
 05:10:00 PM       all      4.93      0.00      1.29     93.78
 Average:          all    100.22    100.20    100.13      0.00

A: Your sar command was not installed properly. Whenever your computer is restarted (as it is the case here between 12:00:00 PM and 03:40:01 PM), the sysstat shell script must be called by the system, so that the LINUX RESTART message can be inserted into the daily data file, indicating that the relevant kernel counters have been reinitialized…
You can install the sysstat script by hand in the relevant startup directory, or you can ask sysstat to do it for you during configuration stage by entering:

$ ./configure --enable-install-cron

Or you can answer ‘y’ to the question:

Set crontab to start sar automatically? (y/n) [--enable-install-cron]

if you use the Interactive Configuration script (iconfig).
Then compile sysstat as usual and run ‘make install’ as the last stage.

2.8. I tried to use options -s and -e with sadf. Unfortunately, I have nothing displayed at all / the output doesn’t match that of sar.

A: The way how options -s and -e are interpreted has changed with sysstat’s versions. First if you don’t have any data displayed by sadf, this is because no data belong to the specified time interval! Up to sysstat version 12.1.4, the time specified with options -s and -e was always considered as being given in local time to be consistent with sar’s default output. Yet sadf displays its timestamps in UTC (Coordinated Universal Time) by default (and in local time with option -T). This could lead to some misunderstandings, as if sadf’s options -s and -e didn’t work properly. So with sysstat version 12.1.5, the time specified with options -s and -e is now consistent with the timestamps displayed by sadf (either in UTC by default or in local time with option -T), even if the output doesn’t match that of sar.

2.10. Do you know a tool which can graphically plot the data collected by sar?

A: You can now draw graphs with sysstat’s standard tools! SVG (Scalable Vector Graphics) is a new output format that has been added to sadf in sysstat version 11.3.1. Read sadf(1) manual page to learn some more about this new format.
There are other tools lying around on the internet that you can use to draw some graphs. I haven’t tested all of them and there must still be some way for improvement… First, some of them are included in the sysstat package although they are no longer maintained: isag (a Perl script) or sargraph (a shell script). You can also find: kSar (a Java application capable of visualizing a sar file with static graphs), sarjitsu (a more sophisticated application producing dynamic visualizations based on Grafana), sarvant, sar2gp, loadgraph, SysStat Charts, sarplot… rrd.cgi is a perl front-end for rrdtool and can be used to make some graphs (see a demo here).
sysstat_mail_report is a script that automatically generates and sends an email report every day/week/month with graphs generated from sysstat data.
I’ve also heard of commercial tools which use sysstat: PerfMan comes to mind, among others.

2.12. I have sysstat setup to run via cron:

0 * * * * /usr/local/lib/sa/sa1 600 6

so that I get an activity report every 10 minutes.
When I use sar to get my output, there is no reading for 00:00:00. This means that at midnight every night there is a spike, or dip, in the graphs. How should I run sysstat / sar so that I get a reading for 00:00:00?

A: Sysstat does get its data at midnight, but two data samples are needed to display the values.
When there is a “file rotation” (beginning of a new day), sadc writes its data at the end of the previous daily data file (/var/log/sa/sa<DD>) and at the beginning of the new one (/var/log/sa/sa<DD+1>). Please note that ‘-’ must be used to specify the output file for sadc to be able to detect such a file rotation. So a crontab like the following one should enable you to get the data for midnight at the end of each daily data file:

# Activity reports every 10 minutes from 01:00:00 to 22:50:00
0 1-22 * * * /usr/local/lib/sa/sa1 600 6
# Activity reports every 10 minutes from 23:00:00 to 00:00:00
# Reporting until 00:00:00 ensures that a file rotation will be detected
# by sadc
0 23 * * * /usr/local/lib/sa/sa1 600 7
# Activity reports every 10 minutes from 00:10:00 to 00:50:00
10 0 * * * /usr/local/lib/sa/sa1 600 5

Another possible crontab would be:

*/10 1-22 * * * /usr/lib/sa/sa1 1 1
0,10,20,30,40 23 * * * /usr/lib/sa/sa1 1 1
50 23 * * * /usr/lib/sa/sa1 600 2
10,20,30,40,50 0 * * * /usr/lib/sa/sa1 1 1

2.14. Does sar need a lot of resources to run?

A: No, sar doesn’t need a lot of CPU to run, nor does it make your system slow, contrary to what some people think. In the first place, it only runs every ten minutes by default. Secondly, when it does run, it is over and done very quickly. Try:

$ time /usr/lib/sa/sa1

to verify that for yourself.
Nor do you have to be concerned about using up all your disk space. sar will use a few hundred kilobytes for a whole day’s worth of data, and it normally only stores one week worth (this can be configured via the HISTORY variable in the /etc/sysconfig/sysstat file). It is entirely self limiting. Moreover, you can ask sar to compress its datafiles older than a certain number of days: see the COMPRESSAFTER parameter in the /etc/sysconfig/sysstat configuration file.

2.16. Some fields are always displayed as 0.00 when I use the sar -d command.

A: See question 3.2 below.

2.18. How can I keep sar data for more than one month?

A: By default sar saves its data in the standard system activity data file, the /var/log/sa/saDD file, where DD is the current day in the month. To prevent sar from overwriting any existing files, just set the variable HISTORY in /etc/sysconfig/sysstat to the number of days during which data must be kept. When this variable has a value greater than 28, sa1 script uses a month-by-month directory structure; datafiles are named YYYYMM/saDD and the script maintains links to these datafiles to mimic the standard sar datafile structure. However please note that pre-existing datafiles will be deleted as links will be created and replace them. Beginning with sysstat version 11.0.0, this tree of directories is no longer created. When HISTORY has a value greater than 28, sa1 now calls sadc with option -D set, telling it to use saYYYYMMDD instead of saDD as the name for the standard system activity daily data files, where YYYY stands for the current year, MM for the current month and DD for the current day. All these files are saved in the same directory (/var/log/sa by default).

2.20. The sar command displays some weird CPU values, e.g.:

10:50:01 AM       CPU     %user     %nice   %system   %iowait     %idle
11:00:01 AM       all     90.90      0.00      5.17      3.93      0.00
11:00:01 AM         0     39.40      0.00      2.37      2.07     56.17
11:00:01 AM         1     29.71      0.00      1.73      1.17     67.39
11:00:01 AM         2     42.69      0.00      2.34      1.11     53.85
11:00:01 AM         3     26.24      0.00      1.41      1.61     70.74
...

A: Sysstat may have met an overflow condition while reading CPU usage from your /proc/stat file. This condition is all the more likely to happen as your machine uptime is high and/or there are many processors. Sysstat up to version 5.0.6 uses 32-bit integer variables to store CPU usage. Then, beginning with version 5.1.1, sysstat has shifted to 64-bit variables, which has fixed the problem. So try to upgrade your version of sysstat to the latest stable release and check that the problem has gone.
Also see question 2.6 above.

2.22. What is the exact meaning of the count parameter for sar and sadc?

A: For sadc, count is the number of data samples collected.
For sar, count is the number of records to display (a record contains the average values for counters over the given time interval - See 2.15).

Starting with an empty file datafile:

sadc datafile 1 6         will write 6 data samples to datafile.
sar -f datafile 1 6       6 is invalid because there are only 5 intervals.

Based on the count value entered for sadc the “valid” count values for sar are 1 through 5. Any value greater than 5 for sar will give the same output as 5 in this example. So entering sar -f datafile 1 2000 for a file populated with the output of sadc 1 6 datafile will give the same output as sar -f datafile 1 5. Note that it all depends on the number of data samples pre-existing in the data file. If the file is empty when first running sadc then the above is true.

2.24. Is it possible to make sadc save only some specific activities in my binary daily data files?

A: sadc’s option -S followed by one or more keywords (DISK, SNMP…) can already be used to specify which optional activities are to be collected. Without this option, sadc collects a default set of activities (CPU activity, memory activity, network activity, etc.)
Yet it is actually possible to specify explicitly which activities should be collected by sadc! You have to use sadc’s option -S followed by the report name corresponding to the activity you want to collect (enter “sar –help” to know the formal report names used by sadc).
Example: To tell sadc to collect only temperature sensors activity in addition to the default set of activities, enter:

sadc -S A_PWR_TEMP (...)

followed by the other classic options (interval, count, filename…) Now assume you want to collect temperature sensors activity without the other activities collected by default, add the special report name A_NULL to the list passed to sadc, e.g.:

sadc -S A_NULL,A_PWR_TEMP (...)

Of course you can enter as many report names as you want to collect different activities. Last you can exclude a specific activity from a list by prefixing its report name with a dash. For example, to collect all possible activities except statistics for interrupts, enter:

sadc -S XALL,-A_IRQ (...)

This way you can tell sadc to collect only the desired activities.

3.1. I can’t see all my disks when I use the iostat command…

A: Yes. This is a kernel limit. Old kernels (2.2.x for instance) used to maintain stats for the first four devices.
The accounting code has changed in 2.4 kernels, and the result may (or may not) be better for your system. Indeed, Linux 2.4 maintains the stats in a two dimensional array, with a maximum of 16 devices (DK_MAX_DISK in the kernel sources). Moreover, if the device major number exceeds DK_MAX_MAJOR (whose value also defaults to 16 in the kernel sources), then stats for this device will not be collected.
So, a solution may be simply to change the values of these limits in linux/include/linux/kernel_stat.h and recompile your kernel. You should no longer have any problem with post 2.5 kernels, since statistics are maintained by the kernel for all the devices. In the particular case of iostat, also be sure to use the ALL keyword on the command line to display statistical information relating to every device, including those that are defined but have never been used by the system.

3.3. Why can’t iostat display extended statistics for partitions with some 2.6.x kernels?

A: Because the kernel maintains these stats only for devices, and not for partitions! Here is an excerpt from the document iostats.txt included in the kernel source documentation:

There were significant changes between 2.4 and 2.6 in the I/O subsystem.
As a result, some statistic information disappeared. The translation from
a disk address relative to a partition to the disk address relative to
the host disk happens much earlier.  All merges and timings now happen
at the disk level rather than at both the disk and partition level as
in 2.4.  Consequently, you'll see a different statistics output on 2.6 for
partitions from that for disks.

Extended I/O statistics for partitions are available again with kernels 2.6.25 and later.

3.5. Why values displayed by iostat are so different in the first report from those displayed in subsequent ones?

A: Probably because, as written in the manual page, the first report generated by iostat concerns the time since system startup, whereas subsequent ones cover only the time since the previous report (that is to say, the interval of time entered on the command line).

4.1. pidstat -d doesn’t report task I/O statistics…

A: For pidstat -d to be able to report I/O statistics for tasks, you need a recent Linux kernel (2.6.20 or later) with the option CONFIG_TASK_IO_ACCOUNTING compiled in.

4.3. pidstat doesn’t display statistics for process (task) xyz

A: This must be because pidstat only displays statistics for active tasks by default. If you don’t use option -p on the command line, then pidstat will display only tasks with non-zero statistics. For example, pidstat -u will display only tasks that have actually used some CPU resources since system startup. You should enter pidstat -u -p ALL to make sure that all the processes are listed in the report.

Sebastien Godard (sysstat at orange dot fr) is the author and the current maintainer of this package.