Home > Articles > Certification > Other IT

  • Print
  • + Share This
This chapter is from the book

This chapter is from the book


Gathering system activity data from vmstat and iostat can be a time-consuming job. You need to automate the gathering of system activity data, and the tool to use is sar. sar refers to the system activity reporter and is used to gather performance data from all the major components of the system. sar comes standard on most UNIX systems, including Solaris. sar can be enabled by uncommenting the appropriate lines in the system crontab and is described later in this section.

sar is part of the system activity reporter package that is included in the Solaris 9 operating environment. This package consists of three commands that are involved in automatic system activity data collection: sadc, sa1, and sa2.

sadc, a utility that also is part of the system activity reporter, collects system activity data and saves it in a binary format—one file for each 24-hour period. This data includes information on CPU utilization, buffer usage, disk and tape I/O activity, TTY device activity, switching and system-call activity, file access, queue activity, interprocess communications, and paging. The information saved is very much like the information you see displayed with the vmstat and iostat commands.

When run, sadc creates binary files in the /usr/adm/sa directory. Each file is named sa<dd>, where <dd> is the current date. The syntax for the sadc command is as follows:

/usr/lib/sa/sadc [t n] <outputfile>

t is the interval (seconds) between samples, and n is the number of samples to take. The value of t should be greater than five seconds; otherwise, the activity of sadc itself might affect the sample. sadc then writes, in binary format, to the file named <outputfile> or to standard output if a filename is not specified. If t and n are omitted, a special file is written once.

The sadc command should be run first at system boot time to record the statistics from when the counters are reset to zero. To make sure sadc is run at boot time, the /etc/init.d/perf file must contain a command line that writes a record to the daily data file.

The command entry has the following format:

su sys -c "/usr/lib/sa/sadc /usr/adm/sa/sa´date +%d´"

This entry is already in the /etc/init.d/perf file, but it needs to be uncommented.

Typically, the system administrator sets up sadc to run at boot time when the system enters multiuser mode and then periodically—usually once each hour. To generate periodic records, you need to run sadc regularly. The simplest way to do this is by putting a line into the /var/spool/cron/crontabs/ sys file, which calls the shell script, sa1. This script invokes sadc and writes to the daily data files, /var/adm/sa/sa<dd>. The sa1 script gets installed with the other sar packages and has the following syntax:

/usr/lib/sa/sa1 [t n]

As with sadc, the arguments t and n cause records to be written n times at an interval of t seconds. If these arguments are omitted, the records are written only one time.

The sar command is used to report what has been collected in the daily activity files created by sadc. sadc creates binary files, and the only way to read this data is using the sar utility.

In addition, the sar command can be used to gather system activity data from the command line to look at performance either over different time slices or over a constricted period of time.

The syntax for the sar command is as follows:

sar [-aAbcdgkmpqruvwy] [-o <outputfile>] [t n ]

The options to the sar command are described in Table 19.3.

Table 19.3 Options for the sar Command




Checks file access operations


Checks buffer activity


Checks system calls


Checks activity for each block device


Checks page-out and memory freeing


Checks kernel memory allocation


Checks interprocess communication


Checks swap and dispatch activity


Checks queue activity


Checks unused memory


Checks CPU utilization


Checks system table status


Checks swapping and switching volume


Checks terminal activity


Reports overall system performance (same as entering all options)


If no option is used, it is equivalent to calling the command with the -u option.

For example:

sar -A -o outfile 5 500

This will display all system activity data every 5 seconds and will gather 500 samples. The file named outfile is the output file where the data will get stored. The data is stored in binary format but can be read by using the -f option, as follows:

sar –f outfile

The following information is displayed:

SunOS ultra5 5.9 sun4u  05/14/2002

15:44:26  %usr  %sys  %wio  %idle
15:44:31    1    2    0   97
15:44:36    1    2    0   96
15:44:41    9    2    9   80
15:44:46    2    3    0   95
15:44:51    0    1    0   99
15:44:56    3    2    0   96
15:45:01    0    0    0   100
15:45:06   15    0    0   85
15:45:11    2    0    0   97
15:45:16    3    2    0   95
15:45:21    1    1    0   98
15:45:26    2    2    0   97
15:45:31    0    0    0   100
15:45:36    0    0    0   100
15:45:41    8    1    0   92
15:45:46    1    4    0   95
15:45:51    2    3    0   96
15:45:56    2    0    0   98
15:46:01    0    0    0   100
15:46:06   15    0    0   85

Average    3    1    0   95

Setting Up sar

To start collecting system activity data with sar, you need to edit the /etc/ init.d/perf file and create an entry in the crontab file. Here are the steps:

  1. Become superuser.

  2. Edit the /etc/init.d/perf file and follow instructions in that file to uncomment lines that enable system activity gathering.

  3. The sadc command writes a special record that marks the time when the counters are reset to zero (boot time). The sadc output is put into the file sa<dd> (where dd is the current date), which acts as the daily system activity record.

  4. 3Edit the /var/spool/cron/crontabs/sys file (the system crontab file) and uncomment the following lines:

0 * * * 0-6 /usr/lib/sa/sa1
20,40 8-17 * * 1-5 /usr/lib/sa/sa1
5 18 * * 1-5 /usr/lib/sa/sa2 -s 8:00 -e 18:01 -i 1200 -A

The first entry writes a record to /var/adm/sa/sa<dd> on the hour, every hour, seven days a week.

The second entry writes a record to /var/adm/sa/sa<dd> twice each hour during peak working hours: at 20 minutes and 40 minutes past the hour, from 8 a.m. to 5 p.m., Monday through Friday.

Thus, these two crontab entries cause a record to be written to /var/adm/sa/sa<dd> every 20 minutes from 8 a.m. to 5 p.m., Monday through Friday, and every hour on the hour otherwise. You can change these defaults to meet your needs.

The third entry runs the shell script named sa2 at 6:05 p.m., Monday through Friday. The sa2 script writes reports from the binary data.

The shell script sa2, a variant of sar, writes a daily report in the file /var/ adm/sa/sar<dd>. The report will summarize hourly activities for the day.

  • + Share This
  • 🔖 Save To Your Account