Skip Navigation Links | |
Exit Print View | |
Managing System Information, Processes, and Performance in Oracle Solaris 11.1 Oracle Solaris 11.1 Information Library |
1. Managing System Information (Tasks)
2. Managing System Processes (Tasks)
3. Monitoring System Performance (Tasks)
Where to Find System Performance Tasks
System Performance and System Resources
Processes and System Performance
About Monitoring System Performance
Displaying System Performance Information
Displaying System Performance Information (Task Map)
Displaying Virtual Memory Statistics (vmstat)
How to Display Virtual Memory Statistics (vmstat)
How to Display System Event Information (vmstat -s)
How to Display Swapping Statistics (vmstat -S)
How to Display Interrupts Per Device (vmstat -i)
Displaying Disk Utilization Information (iostat)
How to Display Disk Utilization Information (iostat)
How to Display Extended Disk Statistics (iostat -xtc)
Displaying Disk Space Statistics (df)
How to Display Disk Space Information (df -k)
Monitoring System Activities (Task Map)
Monitoring System Activities (sar)
How to Check File Access (sar -a)
How to Check Buffer Activity (sar -b)
How to Check System Call Statistics (sar -c)
How to Check Disk Activity (sar -d)
How to Check Page-Out and Memory (sar -g)
Checking Kernel Memory Allocation
How to Check Kernel Memory Allocation (sar -k)
How to Check Interprocess Communication (sar -m)
How to Check Page-In Activity (sar -p)
How to Check Queue Activity (sar -q)
How to Check Unused Memory (sar -r)
How to Check CPU Utilization (sar -u)
How to Check System Table Status (sar -v)
How to Check Swapping Activity (sar -w)
How to Check Terminal Activity (sar -y)
How to Check Overall System Performance (sar -A)
Collecting System Activity Data Automatically (sar)
Running the sadc Command When Booting
Running the sadc Command Periodically With the sa1 Script
Producing Reports With the sa2 Shell Script
4. Scheduling System Tasks (Tasks)
5. Managing the System Console, Terminal Devices, and Power Services (Tasks)
This section describes tasks for monitoring system activities.
|
Use the sar command to perform the following tasks:
Organize and view data about system activity.
Access system activity data on a special request basis.
Generate automatic reports to measure and monitor system performance, as well as special request reports to pinpoint specific performance problems. For information about how to set up the sar command to run on your system, as well as a description of these tools, see Collecting System Activity Data Automatically (sar).
For a detailed description of this command, see the sar(1) man page.
$ sar -a SunOS t2k-brm-24 5.10 Generic_144500-10 sun4v ... 00:00:00 iget/s namei/s dirbk/s 01:00:00 0 3 0 02:00:00 0 3 0 03:00:00 0 3 0 04:00:00 0 3 0 05:00:00 0 3 0 06:00:00 0 3 0 07:00:00 0 3 0 08:00:00 0 3 0 08:20:01 0 3 0 08:40:00 0 3 0 09:00:00 0 3 0 09:20:01 0 10 0 09:40:01 0 1 0 10:00:02 0 5 0 Average 0 4 0
The following list describes the field names and description of operating system routines that are reported by the sar -a command.
The number of requests made for inodes that were not in the directory name look-up cache (DNLC).
The number of file system path searches per second. If namei does not find a directory name in the DNLC, it calls iget to get the inode for either a file or directory. Hence, most igets are the result of DNLC misses.
The number of directory block reads issued per second.
The larger the reported values for these operating system routines, the more time the kernel is spending to access user files. The amount of time reflects how heavily programs and applications are using the file systems. The -a option is helpful for viewing how disk-dependent an application is.
The buffer is used to cache metadata. Metadata includes inodes, cylinder group blocks, and indirect blocks.
$ sar -b 00:00:00 bread/s lread/s %rcache bwrit/s lwrit/s %wcache pread/s pwrit/s 01:00:00 0 0 100 0 0 55 0 0
Example 3-6 Checking Buffer Activity (sar -b)
The following example of sar -b command output shows that the %rcache and %wcache buffers are not causing any slowdowns. All the data is within acceptable limits.
$ sar -b SunOS t2k-brm-24 5.10 Generic_144500-10 sun4v ... 00:00:04 bread/s lread/s %rcache bwrit/s lwrit/s %wcache pread/s pwrit/s 01:00:00 0 0 100 0 0 94 0 0 02:00:01 0 0 100 0 0 94 0 0 03:00:00 0 0 100 0 0 92 0 0 04:00:00 0 1 100 0 1 94 0 0 05:00:00 0 0 100 0 0 93 0 0 06:00:00 0 0 100 0 0 93 0 0 07:00:00 0 0 100 0 0 93 0 0 08:00:00 0 0 100 0 0 93 0 0 08:20:00 0 1 100 0 1 94 0 0 08:40:01 0 1 100 0 1 93 0 0 09:00:00 0 1 100 0 1 93 0 0 09:20:00 0 1 100 0 1 93 0 0 09:40:00 0 2 100 0 1 89 0 0 10:00:00 0 9 100 0 5 92 0 0 10:20:00 0 0 100 0 0 68 0 0 10:40:00 0 1 98 0 1 70 0 0 11:00:00 0 1 100 0 1 75 0 0 Average 0 1 100 0 1 91 0 0
The following table describes the buffer activities that are displayed by the -b option.
|
The most important entries are the cache hit ratios %rcache and %wcache. These entries measure the effectiveness of system buffering. If %rcache falls below 90 percent, or if %wcache falls below 65 percent, it might be possible to improve performance by increasing the buffer space.
$ sar -c 00:00:00 scall/s sread/s swrit/s fork/s exec/s rchar/s wchar/s 01:00:00 38 2 2 0.00 0.00 149 120
Example 3-7 Checking System Call Statistics (sar -c)
The following example shows output from the sar -c command.
$ sar -c SunOS balmy 5.10 Generic_144500-10 sun4v ... 00:00:04 scall/s sread/s swrit/s fork/s exec/s rchar/s wchar/s 01:00:00 89 14 9 0.01 0.00 2906 2394 02:00:01 89 14 9 0.01 0.00 2905 2393 03:00:00 89 14 9 0.01 0.00 2908 2393 04:00:00 90 14 9 0.01 0.00 2912 2393 05:00:00 89 14 9 0.01 0.00 2905 2393 06:00:00 89 14 9 0.01 0.00 2905 2393 07:00:00 89 14 9 0.01 0.00 2905 2393 08:00:00 89 14 9 0.01 0.00 2906 2393 08:20:00 90 14 9 0.01 0.01 2914 2395 08:40:01 90 14 9 0.01 0.00 2914 2396 09:00:00 90 14 9 0.01 0.01 2915 2396 09:20:00 90 14 9 0.01 0.01 2915 2396 09:40:00 880 207 156 0.08 0.08 26671 9290 10:00:00 2020 530 322 0.14 0.13 57675 36393 10:20:00 853 129 75 0.02 0.01 10500 8594 10:40:00 2061 524 450 0.08 0.08 579217 567072 11:00:00 1658 404 350 0.07 0.06 1152916 1144203 Average 302 66 49 0.02 0.01 57842 55544
The following table describes the system call categories that are reported by the -c option. Typically, reads and writes account for about half of the total system calls. However, the percentage varies greatly with the activities that are being performed by the system.
|
$ sar -d 00:00:00 device %busy avque r+w/s blks/s avwait avserv
Example 3-8 Checking Disk Activity
This abbreviated example illustrates the output from the sar -d command.
$ sar -d SunOS balmy 5.10 Generic_144500-10 sun4v ... 12:36:32 device %busy avque r+w/s blks/s avwait avserv 12:40:01 dad1 15 0.7 26 399 18.1 10.0 dad1,a 15 0.7 26 398 18.1 10.0 dad1,b 0 0.0 0 1 1.0 3.0 dad1,c 0 0.0 0 0 0.0 0.0 dad1,h 0 0.0 0 0 0.0 6.0 fd0 0 0.0 0 0 0.0 0.0 nfs1 0 0.0 0 0 0.0 0.0 nfs2 1 0.0 1 12 0.0 13.2 nfs3 0 0.0 0 2 0.0 1.9 nfs4 0 0.0 0 0 0.0 7.0 nfs5 0 0.0 0 0 0.0 57.1 nfs6 1 0.0 6 125 4.3 3.2 nfs7 0 0.0 0 0 0.0 6.0 sd1 0 0.0 0 0 0.0 5.4 ohci0,bu 0 0.0 0 0 0.0 0.0 ohci0,ct 0 0.0 0 0 0.0 0.0 ohci0,in 0 0.0 7 0 0.0 0.0 ohci0,is 0 0.0 0 0 0.0 0.0 ohci0,to 0 0.0 7 0 0.0 0.0
The following table describes the disk device activities that are reported by the -d option.
|
Note that queue lengths and wait times are measured when something is in the queue. If %busy is small, large queues and service times probably represent the periodic efforts by the system to ensure that altered blocks are promptly written to the disk.
$ sar -g 00:00:00 pgout/s ppgout/s pgfree/s pgscan/s %ufs_ipf 01:00:00 0.00 0.00 0.00 0.00 0.00
The output displayed by the sar -g command is a good indicator of whether more memory might be needed. Use the ps -elf command to show the number of cycles that are used by the page daemon. A high number of cycles, combined with high values for the pgfree/s and pgscan/s fields, indicates a memory shortage.
The sar -g command also shows whether inodes are being recycled too quickly and causing a loss of reusable pages.
Example 3-9 Checking Page-Out and Memory (sar -g)
The following example shows output from the sar -g command.
$ sar -g SunOS balmy 5.10 Generic_144500-10 sun4v ... 00:00:00 pgout/s ppgout/s pgfree/s pgscan/s %ufs_ipf 01:00:00 0.00 0.00 0.00 0.00 0.00 02:00:00 0.01 0.01 0.01 0.00 0.00 03:00:00 0.00 0.00 0.00 0.00 0.00 04:00:00 0.00 0.00 0.00 0.00 0.00 05:00:00 0.00 0.00 0.00 0.00 0.00 06:00:00 0.00 0.00 0.00 0.00 0.00 07:00:00 0.00 0.00 0.00 0.00 0.00 08:00:00 0.00 0.00 0.00 0.00 0.00 08:20:01 0.00 0.00 0.00 0.00 0.00 08:40:00 0.00 0.00 0.00 0.00 0.00 09:00:00 0.00 0.00 0.00 0.00 0.00 09:20:01 0.05 0.52 1.62 10.16 0.00 09:40:01 0.03 0.44 1.47 4.77 0.00 10:00:02 0.13 2.00 4.38 12.28 0.00 10:20:03 0.37 4.68 12.26 33.80 0.00 Average 0.02 0.25 0.64 1.97 0.00
The following table describes the output from the -g option.
|
The KMA allows a kernel subsystem to allocate and free memory, as needed.
Rather than statically allocating the maximum amount of memory it is expected to require under peak load, the KMA divides requests for memory into three categories:
Small (less than 256 bytes)
Large (512 bytes to 4 Kbytes)
Oversized (greater than 4 Kbytes)
The KMA keeps two pools of memory to satisfy small requests and large requests. The oversized requests are satisfied by allocating memory from the system page allocator.
If you are checking a system that is being used to write drivers or STREAMS that use KMA resources, then the sar -k command will likely prove useful. Otherwise, you will probably not need the information it provides. Any driver or module that uses KMA resources, but does not specifically return the resources before it exits, can create a memory leak. A memory leak causes the amount of memory that is allocated by KMA to increase over time. Thus, if the alloc fields of the sar -k command increase steadily over time, there might be a memory leak. Another indication of a memory leak is failed requests. If this problem occurs, a memory leak has probably caused KMA to be unable to reserve and allocate memory.
If it appears that a memory leak has occurred, you should check any drivers or STREAMS that might have requested memory from KMA and not returned it.
$ sar -k 00:00:00 sml_mem alloc fail lg_mem alloc fail ovsz_alloc fail 01:00:00 2523136 1866512 0 18939904 14762364 0 360448 0 02:00:02 2523136 1861724 0 18939904 14778748 0 360448 0
Example 3-10 Checking Kernel Memory Allocation (sar -k)
The following is an abbreviated example of sar -k output.
$ sar -k SunOS balmy 5.10 Generic_144500-10 sun4v ... 00:00:04 sml_mem alloc fail lg_mem alloc fail ovsz_alloc fail 01:00:00 6119744 4852865 0 60243968 54334808 156 9666560 0 02:00:01 6119744 4853057 0 60243968 54336088 156 9666560 0 03:00:00 6119744 4853297 0 60243968 54335760 156 9666560 0 04:00:00 6119744 4857673 0 60252160 54375280 156 9666560 0 05:00:00 6119744 4858097 0 60252160 54376240 156 9666560 0 06:00:00 6119744 4858289 0 60252160 54375608 156 9666560 0 07:00:00 6119744 4858793 0 60252160 54442424 156 9666560 0 08:00:00 6119744 4858985 0 60252160 54474552 156 9666560 0 08:20:00 6119744 4858169 0 60252160 54377400 156 9666560 0 08:40:01 6119744 4857345 0 60252160 54376880 156 9666560 0 09:00:00 6119744 4859433 0 60252160 54539752 156 9666560 0 09:20:00 6119744 4858633 0 60252160 54410920 156 9666560 0 09:40:00 6127936 5262064 0 60530688 55619816 156 9666560 0 10:00:00 6545728 5823137 0 62996480 58391136 156 9666560 0 10:20:00 6545728 5758997 0 62996480 57907400 156 9666560 0 10:40:00 6734144 6035759 0 64389120 59743064 156 10493952 0 11:00:00 6996288 6394872 0 65437696 60935936 156 10493952 0 Average 6258044 5150556 0 61138340 55609004 156 9763900 0
The following table describes the output from the -k option.
|
$ sar -m 00:00:00 msg/s sema/s 01:00:00 0.00 0.00
These figures are usually zero (0.00), unless you are running applications that use messages or semaphores.
The following list describes the output from the -m option.
The number of message operations (sends and receives) per second
The number of semaphore operations per second
Example 3-11 Checking Interprocess Communication (sar -m)
The following abbreviated example shows output from the sar -m command.
$ sar -m SunOS balmy 5.10 Generic_144500-10 sun4v ... 00:00:00 msg/s sema/s 01:00:00 0.00 0.00 02:00:02 0.00 0.00 03:00:00 0.00 0.00 04:00:00 0.00 0.00 05:00:01 0.00 0.00 06:00:00 0.00 0.00 Average 0.00 0.00
$ sar -p 00:00:00 atch/s pgin/s ppgin/s pflt/s vflt/s slock/s 01:00:00 0.07 0.00 0.00 0.21 0.39 0.00
Example 3-12 Checking Page-In Activity (sar -p)
The following example shows output from the sar -p command.
$ sar -p SunOS balmy 5.10 Generic_144500-10 sun4v ... 00:00:04 atch/s pgin/s ppgin/s pflt/s vflt/s slock/s 01:00:00 0.09 0.00 0.00 0.78 2.02 0.00 02:00:01 0.08 0.00 0.00 0.78 2.02 0.00 03:00:00 0.09 0.00 0.00 0.81 2.07 0.00 04:00:00 0.11 0.01 0.01 0.86 2.18 0.00 05:00:00 0.08 0.00 0.00 0.78 2.02 0.00 06:00:00 0.09 0.00 0.00 0.78 2.02 0.00 07:00:00 0.08 0.00 0.00 0.78 2.02 0.00 08:00:00 0.09 0.00 0.00 0.78 2.02 0.00 08:20:00 0.11 0.00 0.00 0.87 2.24 0.00 08:40:01 0.13 0.00 0.00 0.90 2.29 0.00 09:00:00 0.11 0.00 0.00 0.88 2.24 0.00 09:20:00 0.10 0.00 0.00 0.88 2.24 0.00 09:40:00 2.91 1.80 2.38 4.61 17.62 0.00 10:00:00 2.74 2.03 3.08 8.17 21.76 0.00 10:20:00 0.16 0.04 0.04 1.92 2.96 0.00 10:40:00 2.10 2.50 3.42 6.62 16.51 0.00 11:00:00 3.36 0.87 1.35 3.92 15.12 0.00 Average 0.42 0.22 0.31 1.45 4.00 0.00
The following table describes the reported statistics from the -p option.
|
The Average queue length while the queue is occupied.
The percentage of time that the queue is occupied.
$ sar -q 00:00:00 runq-sz %runocc swpq-sz %swpocc
The following list describes the output from the -q option.
The number of kernel threads in memory that are waiting for a CPU to run. Typically, this value should be less than 2. Consistently higher values mean that the system might be CPU-bound.
The percentage of time that the dispatch queues are occupied.
The average number of swapped out processes.
The percentage of time in which the processes are swapped out.
Example 3-13 Checking Queue Activity
The following example shows output from the sar -q command. If the %runocc value is high (greater than 90 percent) and the runq-sz value is greater than 2, the CPU is heavily loaded and response is degraded. In this case, additional CPU capacity might be required to obtain acceptable system response.
# sar -q SunOS balmy 5.10 Generic_144500-10 sun4v ... 00:00:00 runq-sz %runocc swpq-sz %swpocc 01:00:00 1.0 7 0.0 0 02:00:00 1.0 7 0.0 0 03:00:00 1.0 7 0.0 0 04:00:00 1.0 7 0.0 0 05:00:00 1.0 6 0.0 0 06:00:00 1.0 7 0.0 0 Average 1.0 7 0.0 0
$ sar -r 00:00:00 freemem freeswap 01:00:00 2135 401922
The following list describes the output from the -r option:
The average number of memory pages that are available to user processes over the intervals sampled by the command. Page size is machine-dependent.
The number of 512-byte disk blocks that are available for page swapping.
Example 3-14 Checking Unused Memory (sar -r)
The following example shows output from the sar -r command.
$ sar -r SunOS balmy 5.10 Generic_144500-10 sun4v ... 00:00:04 freemem freeswap 01:00:00 44717 1715062 02:00:01 44733 1715496 03:00:00 44715 1714746 04:00:00 44751 1715403 05:00:00 44784 1714743 06:00:00 44794 1715186 07:00:00 44793 1715159 08:00:00 44786 1714914 08:20:00 44805 1715576 08:40:01 44797 1715347 09:00:00 44761 1713948 09:20:00 44802 1715478 09:40:00 41770 1682239 10:00:00 35401 1610833 10:20:00 34295 1599141 10:40:00 33943 1598425 11:00:00 30500 1561959 Average 43312 1699242
$ sar -u 00:00:00 %usr %sys %wio %idle 01:00:00 0 0 0 100
The sar command without any options is equivalent to the sar -u command. At any given moment, the processor is either busy or idle. When busy, the processor is in either user mode or system mode. When idle, the processor is either waiting for I/O completion or “sitting still” with no work to do.
The following list describes output from the -u option:
Lists the percentage of time that the processor is in user mode.
Lists the percentage of time that the processor is in system mode.
Lists the percentage of time that the processor is idle and waiting for I/O completion.
Lists the percentage of time that the processor is idle and not waiting for I/O.
A high %wio value generally means that a disk slowdown has occurred.
Example 3-15 Checking CPU Utilization (sar -u)
The following example shows output from the sar -u command.
$ sar -u 00:00:04 %usr %sys %wio %idle 01:00:00 0 0 0 100 02:00:01 0 0 0 100 03:00:00 0 0 0 100 04:00:00 0 0 0 100 05:00:00 0 0 0 100 06:00:00 0 0 0 100 07:00:00 0 0 0 100 08:00:00 0 0 0 100 08:20:00 0 0 0 99 08:40:01 0 0 0 99 09:00:00 0 0 0 99 09:20:00 0 0 0 99 09:40:00 4 1 0 95 10:00:00 4 2 0 94 10:20:00 1 1 0 98 10:40:00 18 3 0 79 11:00:00 25 3 0 72 Average 2 0 0 98
$ sar -v 00:00:00 proc-sz ov inod-sz ov file-sz ov lock-sz 01:00:00 43/922 0 2984/4236 0 322/322 0 0/0
Example 3-16 Checking System Table Status (sar -v)
The following abbreviated example shows output from the sar -v command. This example shows that all tables are large enough to have no overflows. These tables are all dynamically allocated based on the amount of physical memory.
$ sar -v 00:00:04 proc-sz ov inod-sz ov file-sz ov lock-sz 01:00:00 69/8010 0 3476/34703 0 0/0 0 0/0 02:00:01 69/8010 0 3476/34703 0 0/0 0 0/0 03:00:00 69/8010 0 3476/34703 0 0/0 0 0/0 04:00:00 69/8010 0 3494/34703 0 0/0 0 0/0 05:00:00 69/8010 0 3494/34703 0 0/0 0 0/0 06:00:00 69/8010 0 3494/34703 0 0/0 0 0/0 07:00:00 69/8010 0 3494/34703 0 0/0 0 0/0 08:00:00 69/8010 0 3494/34703 0 0/0 0 0/0 08:20:00 69/8010 0 3494/34703 0 0/0 0 0/0 08:40:01 69/8010 0 3494/34703 0 0/0 0 0/0 09:00:00 69/8010 0 3494/34703 0 0/0 0 0/0 09:20:00 69/8010 0 3494/34703 0 0/0 0 0/0 09:40:00 74/8010 0 3494/34703 0 0/0 0 0/0 10:00:00 75/8010 0 4918/34703 0 0/0 0 0/0 10:20:00 72/8010 0 4918/34703 0 0/0 0 0/0 10:40:00 71/8010 0 5018/34703 0 0/0 0 0/0 11:00:00 77/8010 0 5018/34703 0 0/0 0 0/0
Output from the -v option is described in the following table.
|
$ sar -w 00:00:00 swpin/s bswin/s swpot/s bswot/s pswch/s 01:00:00 0.00 0.0 0.00 0.0 22
The following list describes target values and observations related to the sar -w command output.
The number of LWP transfers into memory per second.
The number of blocks transferred for swap-ins per second. /* (float)PGTOBLK(xx->cvmi.pgswapin) / sec_diff */.
The average number of processes that are swapped out of memory per second. If the number is greater than 1, you might need to increase memory.
The number of blocks that are transferred for swap-outs per second.
The number of kernel thread switches, per second.
Note - All process swap-ins include process initialization.
Example 3-17 Checking Swap Activity (sar -w)
The following example shows output from the sar -w command.
$ sar -w 00:00:04 swpin/s bswin/s swpot/s bswot/s pswch/s 01:00:00 0.00 0.0 0.00 0.0 132 02:00:01 0.00 0.0 0.00 0.0 133 03:00:00 0.00 0.0 0.00 0.0 133 04:00:00 0.00 0.0 0.00 0.0 134 05:00:00 0.00 0.0 0.00 0.0 133 06:00:00 0.00 0.0 0.00 0.0 133 07:00:00 0.00 0.0 0.00 0.0 132 08:00:00 0.00 0.0 0.00 0.0 131 08:20:00 0.00 0.0 0.00 0.0 133 08:40:01 0.00 0.0 0.00 0.0 132 09:00:00 0.00 0.0 0.00 0.0 132 09:20:00 0.00 0.0 0.00 0.0 132 09:40:00 0.00 0.0 0.00 0.0 335 10:00:00 0.00 0.0 0.00 0.0 601 10:20:00 0.00 0.0 0.00 0.0 353 10:40:00 0.00 0.0 0.00 0.0 747 11:00:00 0.00 0.0 0.00 0.0 804 Average 0.00 0.0 0.00 0.0 198
$ sar -y 00:00:00 rawch/s canch/s outch/s rcvin/s xmtin/s mdmin/s 01:00:00 0 0 0 0 0 0
If you have a lot of terminal I/O, you can use this report to determine if any bad lines exist. The activities recorded are defined in the following list.
Input characters (raw queue) per second.
Input characters that are processed by canon (canonical queue) per second.
Output characters (output queue) per second.
Receiver hardware interrupts per second.
Transmitter hardware interrupts per second.
Modem interrupts per second.
The number of modem interrupts per second (mdmin/s) should be close to zero. The receive and transmit interrupts per second (xmtin/s and rcvin/s) should be less than or equal to the number of incoming or outgoing characters, respectively. If not, check for bad lines.
Example 3-18 Checking Terminal Activity (sar -y)
The following example shows output from the sar -y command.
$ sar -y 00:00:04 rawch/s canch/s outch/s rcvin/s xmtin/s mdmin/s 01:00:00 0 0 0 0 0 0 02:00:01 0 0 0 0 0 0 03:00:00 0 0 0 0 0 0 04:00:00 0 0 0 0 0 0 05:00:00 0 0 0 0 0 0 06:00:00 0 0 0 0 0 0 07:00:00 0 0 0 0 0 0 08:00:00 0 0 0 0 0 0 08:20:00 0 0 0 0 0 0 08:40:01 0 0 0 0 0 0 09:00:00 0 0 0 0 0 0 09:20:00 0 0 0 0 0 0 09:40:00 0 0 1 0 0 0 10:00:00 0 0 37 0 0 0 10:20:00 0 0 0 0 0 0 10:40:00 0 0 3 0 0 0 11:00:00 0 0 3 0 0 0 Average 0 0 1 0 0 0
This command provides a more global perspective. If data from more than a single time segment is shown, the report includes averages.
Three commands are involved in the automatic collection of system activity data: sadc, sa1, and sa2.
The sadc data collection utility periodically collects data on system activity and saves the data in a file in binary format, one file for each 24-hour period. You can set up the sadc command to run periodically (usually once each hour), and whenever the system boots to multiuser mode. The data files are placed in the /var/adm/sa directory. Each file is named sadd, where dd is the current date. The format of the command is as follows:
/usr/lib/sa/sadc [t n] [ofile]
The command samples n times with an interval of t seconds, which should be greater than five seconds between samples. This command then writes to the binary ofile file, or to standard output.
The sadc command should be run at system boot time to record the statistics from when the counters are reset to zero. To make sure that the sadc command is run at boot time, the svcadm enable system/sar:default command 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`"
To generate periodic records, you need to run the sadc command regularly. The simplest way to do so is to uncomment the following lines in the /var/spool/cron/crontabs/sys 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.
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.
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 five seconds or greater. Otherwise, the command itself might affect the sample. You must specify a time interval in 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 were 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. This file is 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 time and the ending time for the report. Starting and ending times are of the form hh[:mm[:ss]], where hh, mm, and ss 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 3-5 Options for the sar Command
|
Using no option is equivalent to calling the sar command with the -u option.
This version of the sadc command writes a special record that marks the time when the counters are reset to zero (boot time).
Note - Do not edit a crontab file directly. Instead, use the crontab -e command to make changes to an existing crontab file.
# crontab -e sys
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
For more information, see the crontab(1) man page.