Sun Microsystems, Inc.
spacerspacer
spacer www.sun.com docs.sun.com |
spacer
black dot
 
 
24.  Monitoring System Performance (Tasks) Collecting System Activity Data Automatically (sar)  Previous   Contents   Next 
   
 

Running the sadc Command When Booting

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

The command entry has the following format:

/usr/bin/su sys -c "/usr/lib/sa/sadc /var/adm/sa/sa`date +%d`"

Running the sadc Command Periodically With the sa1 Script

To generate periodic records, you need to run the sadc command regularly. The simplest way to do so is uncomment the following lines in the /var/spool/cron/sys crontab file:

# 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 sys crontab entries do the following:

  • The first two crontab entries cause a record to be written to the /var/adm/sa/sadd file every 20 minutes from 8 a.m. to 5 p.m., Monday through Friday, and every hour on the hour otherwise.

  • The third entry writes a record to the /var/adm/sa/sardd file hourly, Monday through Friday, and includes all sar options.

You can change these defaults to meet your needs.

Producing Reports With the sa2 Shell Script

Another shell script, sa2, produces reports rather than binary data files. The sa2 command invokes the sar command and writes the ASCII output to a report file.

Setting Up Automatic Data Collection (sar)

The sar command can be used either to gather system activity data itself or to report what has been collected in the daily activity files that are created by the sadc command.

The sar command has the following formats:

sar [-aAbcdgkmpqruvwy] [-o file] t [n] 
sar [-aAbcdgkmpqruvwy] [-s time] [-e time] [-i sec] [-f file]

The following sar command samples cumulative activity counters in the operating system every t seconds, n times. The t should be 5 seconds or greater. Otherwise, the command itself might affect the sample. You must specify a time interval between which to take the samples. Otherwise, the command operates according to the second format. The default value of n is 1. The following example takes two samples separated by 10 seconds. If the -o option is specified, samples are saved in binary format.

$ sar -u 10 2

Other important information about the sar command includes the following:

  • With no sampling interval or number of samples specified, the sar command extracts data from a previously recorded file, either the file specified by the -f option or, by default, the standard daily activity file, /var/adm/sa/sadd, for the most recent day.

  • The -s and -e options define the starting and ending times for the report. Starting and ending times are of the form hh[:mm[:ss]] (where h, m, and s represent hours, minutes, and seconds).

  • The -i option specifies, in seconds, the intervals between record selection. If the -i option is not included, all intervals that are found in the daily activity file are reported.

The following table lists the sar options and their actions.

Table 24-21 Options for the sar Command

Option

Actions

-a

Checks file access operations

-b

Checks buffer activity

-c

Checks system calls

-d

Checks activity for each block device

-g

Checks page-out and memory freeing

-k

Checks kernel memory allocation

-m

Checks interprocess communication

-p

Checks swap and dispatch activity

-q

Checks queue activity

-r

Checks unused memory

-u

Checks CPU utilization

-nv

Checks system table status

-w

Checks swapping and switching volume

-y

Checks terminal activity

-A

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.

How to Set Up Automatic Data Collection

  1. Become superuser.

  2. Edit the /etc/init.d/perf file and uncomment the following lines:

    # if [ -z "$_INIT_RUN_LEVEL" ]; then
    #       set -- `/usr/bin/who -r`
    #       _INIT_RUN_LEVEL="$7"
    #       _INIT_RUN_NPREV="$8"
    #       _INIT_PREV_LEVEL="$9"
    # fi
    # 
    # if [ $_INIT_RUN_LEVEL -ge 2 -a $_INIT_RUN_LEVEL -le 4 -a \
    #     $_INIT_RUN_NPREV -eq 0 -a \( $_INIT_PREV_LEVEL = 1 -o \
    #     $_INIT_PREV_LEVEL = S \) ]; then
    # 
    #       /usr/bin/su sys -c "/usr/lib/sa/sadc /var/adm/sa/sa`date +%d`"
    # fi

    This version of the sadc command writes a special record that marks the time when the counters are reset to zero (boot time).

  3. Edit the /var/spool/cron/crontabs/sys 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
 
 
 
  Previous   Contents   Next