系统管理指南:高级管理

第 13 章 监视系统性能(任务)

本章介绍使用 vmstatiostatdfsar 命令监视系统性能的过程。

有关与监视系统性能相关的过程的信息,请参见以下主题:

显示系统性能信息(任务图)

任务 

说明 

参考 

显示虚拟内存统计信息。 

使用 vmstat 命令收集虚拟内存统计信息。

如何显示虚拟内存统计信息 (vmstat)

显示系统事件信息。 

使用 vmstat 命令和 -s 选项显示系统事件信息。

如何显示系统事件信息 (vmstat -s)

显示交换统计信息。 

使用 vmstat 命令和 -S 选项显示交换统计信息。

如何显示交换统计信息 (vmstat -S)

显示每台设备的中断。 

使用 vmstat 命令和 -i 选项显示每台设备的中断次数。

如何显示每台设备的中断次数 (vmstat -i)

显示磁盘使用率。 

使用 iostat 命令报告磁盘输入和输出统计信息。

如何显示磁盘使用率信息 (iostat)

显示扩展磁盘统计信息。 

使用 iostat 命令和 -xtc 选项显示扩展磁盘统计信息。

如何显示扩展磁盘统计信息 (iostat -xtc)

显示磁盘空间信息。 

df -k 命令以千字节为单位显示磁盘空间信息。

如何显示磁盘空间信息 (df -k)

显示虚拟内存统计信息 (vmstat)

可以使用 vmsta 命令报告虚拟内存统计信息,以及有关系统事件(例如 CPU 负载、分页、上下文切换数、设备中断和系统调用)的信息。vmstat 命令还可以显示有关交换、高速缓存刷新和中断的统计信息。

下表介绍了 vmstat 命令输出中的字段。

表 13–1 vmstat 命令的输出

类别 

字段名 

说明 

procs

 

报告以下内容: 

 

r

分发队列中的内核线程数 

 

b

正在等待资源的阻塞内核线程数 

 

w

正在等待处理中的资源完成的换出 LWP 数  

memory

 

报告实际内存和虚拟内存的使用情况: 

 

swap

可用交换空间 

 

free

可用列表的大小 

page

 

以秒为单位报告页面错误和分页活动: 

 

re

回收的页面 

 

mf

次要错误和主要错误 

 

pi

页入的千字节数 

 

po

页出的千字节数 

 

fr

释放的千字节数 

 

de

最近换入的进程所需的预计内存 

 

sr

page 守护程序扫描的当前未使用的页数。如果 sr 不等于零,则 page 守护程序一直在运行。

磁盘

 

报告每秒的磁盘操作数,最多显示四个磁盘中的数据 

faults

 

报告每秒的陷阱/中断速率: 

 

in

每秒的中断次数 

 

sy

每秒的系统调用数 

 

cs

CPU 上下文切换速率 

cpu

 

报告 CPU 使用时间: 

 

us

用户时间 

 

sy

系统时间 

 

id

空闲时间  

有关此命令的更多详细说明,请参见 vmstat(1M) 手册页。

Procedure如何显示虚拟内存统计信息 (vmstat)

  1. 使用 vmstat 命令以秒为时间间隔单位收集虚拟内存统计信息。


    $ vmstat n
    

    其中,n 是两次报告之间的间隔秒数。


示例 13–1 显示虚拟内存统计信息

以下示例显示了利用 vmstat 报告的以 5 秒为间隔收集的统计信息:


$ vmstat 5
kthr      memory            page            disk          faults      cpu
 r b w   swap  free  re  mf pi po fr de sr dd f0 s1 --   in   sy   cs us sy id
 0 0 0 863160 365680  0   3  1  0  0  0  0  0  0  0  0  406  378  209  1  0 99
 0 0 0 765640 208568  0  36  0  0  0  0  0  0  0  0  0  479 4445 1378  3  3 94
 0 0 0 765640 208568  0   0  0  0  0  0  0  0  0  0  0  423  214  235  0  0 100
 0 0 0 765712 208640  0   0  0  0  0  0  0  3  0  0  0  412  158  181  0  0 100
 0 0 0 765832 208760  0   0  0  0  0  0  0  0  0  0  0  402  157  179  0  0 100
 0 0 0 765832 208760  0   0  0  0  0  0  0  0  0  0  0  403  153  182  0  0 100
 0 0 0 765832 208760  0   0  0  0  0  0  0  0  0  0  0  402  168  177  0  0 100
 0 0 0 765832 208760  0   0  0  0  0  0  0  0  0  0  0  402  153  178  0  0 100
 0 0 0 765832 208760  0  18  0  0  0  0  0  0  0  0  0  407  165  186  0  0 100

Procedure如何显示系统事件信息 (vmstat -s)

  1. 运行 vmstat -s 命令,以显示自上次引导系统以来发生的系统事件数。


    $ vmstat -s
            0 swap ins
            0 swap outs
            0 pages swapped in
            0 pages swapped out
       522586 total address trans. faults taken
        17006 page ins
           25 page outs
        23361 pages paged in
           28 pages paged out
        45594 total reclaims
        45592 reclaims from free list
            0 micro (hat) faults
       522586 minor (as) faults
        16189 major faults
        98241 copy-on-write faults
       137280 zero fill page faults
        45052 pages examined by the clock daemon
            0 revolutions of the clock hand
           26 pages freed by the clock daemon
         2857 forks
           78 vforks
         1647 execs
     34673885 cpu context switches
     65943468 device interrupts
       711250 traps
     63957605 system calls
      3523925 total name lookups (cache hits 99%)
        92590 user   cpu
        65952 system cpu
     16085832 idle   cpu
         7450 wait   cpu

Procedure如何显示交换统计信息 (vmstat -S)

  1. 运行 vmstat -S,以显示交换统计信息。


    $ vmstat -S
    kthr      memory            page            disk          faults      cpu
     r b w   swap  free  si  so pi po fr de sr dd f0 s1 --   in   sy   cs us sy id
     0 0 0 862608 364792  0   0  1  0  0  0  0  0  0  0  0  406  394  213  1  0 99

    以下列表介绍了交换统计信息字段。有关其他字段的说明,请参见表 13–1

    si

    每秒换入的平均 LWP 数

    so

    换出的完整进程数


    注 –

    vmstat 命令会截断 siso 字段的输出。应使用 sar 命令显示更精确的交换统计信息记录。


Procedure如何显示每台设备的中断次数 (vmstat -i)

  1. 运行 vmstat -i 命令,以显示每台设备的中断次数。


示例 13–2 显示每台设备的中断次数

以下示例显示 vmstat -i 命令的输出。


$ vmstat -i
interrupt         total     rate
--------------------------------
clock          52163269      100
esp0            2600077        4
zsc0              25341        0
zsc1              48917        0
cgsixc0             459        0
lec0             400882        0
fdc0                 14        0
bppc0                 0        0
audiocs0              0        0
--------------------------------
Total          55238959      105

显示磁盘使用率信息 ( iostat)

使用 iostat 命令可以报告有关磁盘输入和输出的统计信息,以及生成对吞吐量、使用率、队列长度、事务速率和服务时间的测量值。有关此命令的详细说明,请参阅 iostat(1M) 手册页。

Procedure如何显示磁盘使用率信息 (iostat)

  1. 使用 iostat 命令和时间间隔秒数可以显示磁盘使用率信息。


    $ iostat 5
         tty          fd0           sd3          nfs1         nfs31          cpu
    tin tout kps tps serv  kps tps serv  kps tps serv  kps tps serv  us sy wt id
      0    1   0   0  410    3   0   29    0   0    9    3   0   47   4  2  0 94

    输出的第一行显示自上次引导系统以来的统计信息。后面的每行显示间隔的统计信息。缺省情况下会显示终端 (tty)、磁盘 (fd 以及 sd) 和 CPU (cpu) 的统计信息。


示例 13–3 显示磁盘使用率信息

以下示例显示每隔 5 秒收集的磁盘统计信息。


$ iostat 5
tty        sd0           sd6           nfs1         nfs49           cpu
tin tout kps tps serv  kps tps serv  kps tps serv  kps tps serv  us sy wt id
 0    0   1   0   49    0   0    0    0   0    0    0   0   15   0  0  0 100
 0   47   0   0    0    0   0    0    0   0    0    0   0    0   0  0  0 100
 0   16   0   0    0    0   0    0    0   0    0    0   0    0   0  0  0 100
 0   16   0   0    0    0   0    0    0   0    0    0   0    0   0  0  0 100
 0   16  44   6  132    0   0    0    0   0    0    0   0    0   0  0  1 99
 0   16   0   0    0    0   0    0    0   0    0    0   0    0   0  0  0 100
 0   16   0   0    0    0   0    0    0   0    0    0   0    0   0  0  0 100
 0   16   0   0    0    0   0    0    0   0    0    0   0    0   0  0  0 100
 0   16   0   0    0    0   0    0    0   0    0    0   0    0   0  0  0 100
 0   16   0   0    0    0   0    0    0   0    0    0   0    0   0  0  0 100
 0   16   3   1   23    0   0    0    0   0    0    0   0    0   0  0  1 99
 0   16   0   0    0    0   0    0    0   0    0    0   0    0   0  0  0 100
 0   16   0   0    0    0   0    0    0   0    0    0   0    0   0  0  0 100
 0   16   0   0    0    0   0    0    0   0    0    0   0    0   0  0  0 100

下表介绍了 iostat n 命令输出中的字段。

设备类型 

字段名 

说明 

终端 

设备类型 

 
 

tin

终端输入队列中的字符数 

 

tout

终端输出队列中的字符数 

磁盘 

设备类型 

 
 

bps

每秒块数 

 

tps

每秒事务数 

 

serv

平均服务时间,以毫秒为单位 

CPU 

设备类型 

 
 

us

在用户模式下 

 

sy

在系统模式下 

 

wt

等待 I/O 

 

id

空闲 


Procedure如何显示扩展磁盘统计信息 (iostat -xtc)

  1. 运行 iostat -xtc 命令,以显示扩展磁盘统计信息。


    $ iostat -xtc
                      extended device statistics                      tty         cpu
    device       r/s    w/s   kr/s   kw/s wait actv  svc_t  %w  %b  tin tout  us sy wt id
    fd0          0.0    0.0    0.0    0.0  0.0  0.0    0.0   0   0    0    0   0  0  0 100
    sd0          0.0    0.0    0.4    0.4  0.0  0.0   49.5   0   0 
    sd6          0.0    0.0    0.0    0.0  0.0  0.0    0.0   0   0 
    nfs1         0.0    0.0    0.0    0.0  0.0  0.0    0.0   0   0 
    nfs49        0.0    0.0    0.0    0.0  0.0  0.0   15.1   0   0 
    nfs53        0.0    0.0    0.4    0.0  0.0  0.0   24.5   0   0 
    nfs54        0.0    0.0    0.0    0.0  0.0  0.0    6.3   0   0 
    nfs55        0.0    0.0    0.0    0.0  0.0  0.0    4.9   0   0 

    iostat -xtc 命令对每个磁盘显示一行输出。以下列表介绍了输出字段。

    r/s

    每秒读取次数

    w/s

    每秒写入次数

    kr/s

    每秒读取的千字节数

    kw/s

    每秒写入的千字节数

    wait

    等待服务的平均事务数(队列长度)

    actv

    处于活动服务状态的平均事务数

    svc_t

    平均服务时间,以毫秒为单位

    %w

    队列不为空的时间百分比

    %b

    磁盘繁忙的时间百分比

显示磁盘空间统计信息 (df)

使用 df 命令可以显示挂载的每个磁盘中的可用磁盘空间量。df 报告的可用磁盘空间只反映全部容量的 90%,因为报告统计信息留出总可用空间的 10% 以上。此头空间通常保持为空,以实现更好的性能。

df 命令实际报告的磁盘空间百分比是已用空间除以可用空间。

如果文件系统超出容量的 90%,则可使用 cp 命令将文件转移至具有可用空间的磁盘。或者,使用 tarcpio 命令将文件转移至磁带。也可以删除文件。

有关此命令的详细说明,请参见 df(1M) 手册页。

Procedure如何显示磁盘空间信息 (df -k)

  1. 使用 df -k 命令以千字节为单位显示磁盘空间信息。


    $ df -k
    Filesystem            kbytes    used   avail capacity  Mounted on
    /dev/dsk/c0t3d0s0     192807   40231  133296    24%    / 

示例 13–4 显示文件系统信息

以下示例显示 df -k 命令的输出。


$ df -k
Filesystem            kbytes    used   avail capacity  Mounted on
/dev/dsk/c0t0d0s0     254966  204319   25151    90%    /
/devices                   0       0       0     0%    /devices
ctfs                       0       0       0     0%    /system/contract
proc                       0       0       0     0%    /proc
mnttab                     0       0       0     0%    /etc/mnttab
swap                  496808     376  496432     1%    /etc/svc/volatile
objfs                      0       0       0     0%    /system/object
/dev/dsk/c0t0d0s6    3325302 3073415  218634    94%    /usr
fd                         0       0       0     0%    /dev/fd
swap                  496472      40  496432     1%    /var/run
swap                  496472      40  496432     1%    /tmp
/dev/dsk/c0t0d0s5      13702    1745   10587    15%    /opt
/dev/dsk/c0t0d0s7       9450    1045    7460    13%    /export/home

下表介绍了 df -k 命令的输出。

字段名 

说明 

kbytes

文件系统中可用空间的总大小 

used

已用空间量 

avail

可用空间量 

capacity

已用空间量,表示为总容量的百分比 

mounted on

挂载点 


监视系统活动(任务图)

任务 

说明 

参考 

检查文件访问。 

使用带有 -a 选项的 sar 命令显示文件访问操作状态。

如何检查文件访问 (sar -a)

检查缓冲区活动。 

使用带有 -b 选项的 sar 命令显示缓冲区活动统计信息。

如何检查缓冲区活动 (sar -b)

检查系统调用统计信息。 

使用带有 -c 选项的 sar 命令显示系统调用统计信息。

如何检查系统调用统计信息 (sar -c)

检查磁盘活动。 

使用带有 -d 选项的 sar 命令检查磁盘活动。

如何检查磁盘活动 (sar -d)

检查页出和内存。 

使用带有 -g 选项的 sar 命令显示页出内存释放活动。

如何检查页出和内存 (sar -g)

检查内核内存分配。 

内核内存分配 (Kernel Memory Allocation, KMA) 允许内核子系统根据需要分配和释放内存。使用带有 -k 选项的 sar 命令检查 KMA。

如何检查内核内存分配 (sar -k)

检查进程间通信。 

使用带有 -m 选项的 sar 命令报告进程间通信活动。

如何检查进程间通信 (sar -m)

检查页入活动。 

使用带有 -p 选项的 sar 命令报告页入活动。

如何检查页入活动 (sar -p)

检查队列活动。 

使用带有 -q 选项的 sar 命令检查以下内容:

  • 占用队列时的平均队列长度

  • 占用队列时的时间百分比

如何检查队列活动 (sar -q)

检查未使用的内存。 

使用带有 -r 选项的 sar 命令报告当前使用的内存页数和交换文件磁盘块数。

如何检查未使用的内存 (sar -r)

检查 CPU 使用率。 

使用带有 -u 选项的 sar 命令显示 CPU 使用率统计信息。

如何检查 CPU 使用率 (sar -u)

检查系统表状态。 

使用带有 -v 选项的 sar 命令报告有关以下系统表的状态:

  • 进程

  • Inode

  • 文件

  • 共享内存记录

如何检查系统表状态 (sar -v)

检查交换活动。 

使用带有 -w 选项的 sar 命令检查交换活动。

如何检查交换活动 (sar -w)

检查终端活动。 

使用带有 -y 选项的 sar 命令监视终端设备活动。

如何检查终端活动 (sar -y)

检查总体系统性能。 

sar -A 命令可通过显示所有选项的统计信息提供总体系统性能信息。

如何检查总体系统性能 (sar -A)

设置自动数据收集。 

要设置系统以自动收集数据并运行 sar 命令,请执行以下操作:

  • 运行 svcadm enable system/sar:default 命令

  • 编辑 /var/spool/cron/crontabs/sys 文件

如何设置自动数据收集

监视系统活动 (sar)

使用 sar 命令可执行以下任务:

有关此命令的详细说明,请参见 sar(1) 手册页。

Procedure如何检查文件访问 (sar -a)

  1. 使用 sar -a 命令可显示文件访问操作统计信息。


    $ sar -a
    
    SunOS balmyday 5.10 s10_51 sun4u    03/18/2004
    
    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

    以下列表介绍了 sar -a 命令报告的操作系统例程的字段名和说明。

    iget/s

    对不位于目录名称查找高速缓存 (Directory Name Look-up Cache, DNLC) 中的 inode 发出的请求数。

    namei/s

    每秒搜索的文件系统路径数。如果 namei 在 DNLC 中找不到目录名称,它会调用 iget 以获取文件或目录的 inode。因此,大多数 igets 都是 DNLC 遗漏的结果。

    dirbk/s

    每秒发出的目录块读取数。

    这些操作系统例程的报告值越大,内核访问用户文件所用的时间就越多。时间的长短将反映程序和应用程序使用文件系统的程度。-a 选项有助于查看磁盘与应用程序的相关情况。

Procedure如何检查缓冲区活动 (sar -b)

  1. 使用 sar -b 命令可显示缓冲区活动统计信息。

    缓冲区用于高速缓存元数据。元数据包括 inode、柱面组块和间接块。


    $ 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

示例 13–5 检查缓冲区活动 (sar -b)

下面的 sar -b 命令输出示例说明 %rcache%wcache 缓冲区未引起速率下降。所有数据都在可接受的限制范围内。


$ sar -b

SunOS balmyday 5.10 s10_51 sun4u    03/18/2004

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

下表介绍了 -b 选项显示的缓冲区活动。

字段名 

说明 

bread/s

从磁盘提交至高速缓存存储区的每秒平均读取数 

lread/s

每秒从高速缓存存储区进行的平均逻辑读取数 

%rcache

在高速缓存存储区中找到的逻辑读取的分数(100 % 减去 bread/slread/s 之比)

bwrit/s

每秒平均从高速缓存存储区写入磁盘的物理块数(512 块) 

lwrit/s

每秒平均对高速缓存存储区进行的逻辑写入数 

%wcache

在高速缓存存储区中找到的逻辑写入的分数(100 % 减去 bwrit/slwrit/s 之比)

pread/s

每秒平均使用字符设备接口的物理读取数 

pwrit/s

每秒平均使用字符设备接口的物理写入请求数 

最重要的项是高速缓存命中率 %rcache%wcache。这两项用于度量系统缓冲的有效性。如果 %rcache 低于 90% 或者 %wcache 低于 65%,则可通过增加缓冲区空间来改善性能。


Procedure如何检查系统调用统计信息 (sar -c)

  1. 使用 sar -c 命令可显示系统调用统计信息。


    $ 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

示例 13–6 检查系统调用统计信息 (sar -c)

以下示例显示 sar -c 命令的输出。


$ sar -c

SunOS balmyday 5.10 s10_51 sun4u    03/18/2004

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

下表介绍了 -c 选项报告的系统调用类别。通常,读取和写入占系统调用总数的一半。但是,该百分比会因系统所执行的活动而产生极大的变化。

字段名 

说明 

scall/s

每秒中所有类型的系统调用数,在具有 4 到 6 位用户的系统中,通常每秒大约有 30 个系统调用。 

sread/s

每秒的 read 系统调用数。

swrit/s

每秒的 write 系统调用数。

fork/s

每秒的 fork 系统调用数,在具有 4 到6 位用户的系统中,每秒中大约有 0.5 个该系统调用。如果正在运行 Shell 脚本,此数字会增加。

exec/s

每秒的 exec 系统调用数。如果 exec/s 除以 fork/s 的结果大于 3,请确定是否存在无效的 PATH 变量。

rchar/s

每秒由 read 系统调用传送的字符数(字节)。

wchar/s

每秒由 write 系统调用传送的字符数(字节)。


Procedure如何检查磁盘活动 (sar -d)

  1. 使用 sar -d 命令可显示磁盘活动统计信息。


    $ sar -d
    
    00:00:00   device        %busy   avque   r+w/s  blks/s  avwait  avserv

示例 13–7 检查磁盘活动

此缩写示例演示了 sar -d 命令的输出。


$ sar -d

SunOS balmyday 5.10 s10_51 sun4u    03/18/2004

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

下表介绍了 -d 选项报告的磁盘设备活动。

字段名 

说明 

device

监视的磁盘设备的名称。 

%busy

设备忙于为传送请求提供服务的时间份额。 

avque

设备忙于为传送请求提供服务期间的平均请求数。 

r+w/s

每秒对设备进行的读取和写入传送数。 

blks/s

每秒传送给设备的 512 字节块的数量。 

avwait

传送请求在队列中空闲等待的平均时间,以毫秒为单位。仅当队列被占用时才测量此时间。 

avserv

设备完成传送请求所需的平均时间,以毫秒为单位。对于磁盘而言,此值包括查找时间、旋转延迟时间和数据传送时间。 

请注意,在队列不为空时测量队列长度和等待时间。当 %busy 很小时,如果队列和服务时间很大,则可能表示系统进行周期性的努力,以确保将警报块快速写入磁盘。


Procedure如何检查页出和内存 (sar -g)

  1. 使用 sar -g 命令可显示平均页出和内存释放活动。


    $ 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

    sar -g 命令的输出可以明确指示是否需要更多内存。使用 ps -elf 命令显示 page 守护程序使用的周期数。如果周期数很大,并且 pgfree/spgscan/s 字段的值也很大,则表明内存不足。

    sar -g 命令还可表明是否回收 inode 的速率过快而引起可重用页丢失。


示例 13–8 检查页出和内存 (sar -g)

以下示例显示 sar -g 命令的输出。


$ sar -g

SunOS balmyday 5.10 s10_51 sun4u    03/18/2004

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

下表介绍了 -g 选项的输出。

字段名 

说明 

pgout/s

每秒的页出请求数。 

ppgout/s

每秒调出的页的实际数量。单个页出请求可能涉及多个页的调出。 

pgfree/s

每秒放置在可用列表中的页数。 

pgscan/s

page 守护程序每秒扫描的页数。如果此值很大,则表明 page 守护程序花费大量时间来检查可用内存。此情况暗示,可能需要更多内存。

%ufs_ipf

具有关联的可重用页的 iget 从可用列表中取消的 ufs inode 的百分比。这些页面被刷新,并且不能由进程回收。因此,此字段表示具有页面刷新的 igets 的百分比。如果该值很大,则表明 inode 的可用列表页面密集,并且可能需要增加 ufs inode 的数量。


检查内核内存分配

KMA 允许内核子系统根据需要分配和释放内存。

KMA 并不是静态分配在峰值载荷下预计所需的最大内存量,而是将内存请求划分为三个类别:

KMA 保留两个内存池,以满足小型和大型请求。超大型请求则通过从系统页面分配器中分配内存来满足。

如果您所检查的系统用来编写使用 KMA 资源的驱动程序或 STREAMS,则 sar -k 命令可能很有用。否则,您可能不需要它所提供的信息。使用 KMA 资源但不一定在退出前返回资源的所有驱动程序或模块都可能产生内存泄漏。内存泄漏会导致 KMA 分配的内存量随事件而增加。因此,如果 sar -k 命令的 alloc 字段随时间稳定增加,则可能存在内存泄漏。表明存在内存泄漏的另一种情况是请求失败。如果出现此问题,内存泄漏很可能导致 KMA 无法保留和分配内存。

如果似乎存在内存泄漏,则应检查可能从 KMA 请求内存但未返回内存的所有驱动程序或 STREAMS。

Procedure如何检查内核内存分配 (sar -k)

  1. 使用 sar -k 命令可报告内核内存分配器 (Kernel Memory Allocator, KMA) 的以下活动。


    $ 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

示例 13–9 检查内核内存分配 (sar -k)

下面是 sar -k 输出的缩写示例。


$ sar -k

SunOS balmyday 5.10 s10_51 sun4u    03/18/2004

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

下表介绍了 -k 选项的输出。

字段名 

说明 

sml_mem

KMA 在小型内存请求池中可用的内存量,以字节为单位。在此池中,小型请求小于 256 字节。 

alloc

KMA 已从其小型内存请求池向小型内存请求分配的内存量,以字节为单位。 

fail

请求少量内存并失败的请求数。 

lg_mem

KMA 在大型内存请求池中可用的内存量,以字节为单位。在此池中,大型请求介于 512 字节到 4 千字节之间。 

alloc

KMA 已从其大型内存请求池向大型内存请求分配的内存量,以字节为单位。 

fail

请求大量内存并失败的请求数。 

ovsz_alloc

为大于 4 千字节的超大型请求分配的内存量。这些请求可通过页面分配器来满足。因此,不存在池。 

fail

因请求超大量内存而失败的请求数。 


Procedure如何检查进程间通信 (sar -m)

  1. 使用 sar -m 命令可报告进程间通信活动。


    $ sar -m
    00:00:00   msg/s  sema/s
    01:00:00    0.00    0.00

    除非运行使用消息或信号的应用程序,否则这些数字通常都为零 (0.00)。

    以下列表介绍了 -m 选项的输出。

    msg/s

    每秒的消息操作(发送和接收)数

    sema/s

    每秒的信号操作数


示例 13–10 检查进程间通信 (sar -m)

以下缩写示例显示 sar -m 命令的输出。


$ sar -m

SunOS balmyday 5.10 s10_51 sun4u    03/18/2004

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

Procedure如何检查页入活动 (sar -p)

  1. 使用 sar -p 命令可报告页入活动,其中包括保护错误和转换错误。


    $ 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

示例 13–11 检查页入活动 (sar -p)

以下示例显示 sar -p 命令的输出。


$ sar -p

SunOS balmyday 5.10 s10_51 sun4u    03/18/2004

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

下表介绍了通过 -p 选项报告的统计信息。

字段名 

说明 

atch/s

每秒通过回收当前在内存中的页来满足的页面错误数(每秒附加数)。例如从可用列表中回收无效的页,以及共享其他进程当前正在使用的文本页。例如,两个或多个进程同时访问同一程序文本。 

pgin/s

文件系统每秒接收页入请求的次数。 

ppgin/s

每秒调进的页数。单个页入请求(例如软件锁定请求,请参见 slock/s)或块大小很大时可能涉及多个页的调进。

pflt/s

因保护错误引起的页面错误数。保护错误实例表明非法访问页面和“写复制”。通常,此数目主要包含“写复制”。 

vflt/s

每秒的地址转换页面错误数。这些错误称为有效性错误。当给定虚拟地址的有效进程表项不存在时,会发生有效性错误。 

slock/s

每秒内由要求物理 I/O 的软件锁定请求引起的错误数。例如,从磁盘向内存传输数据时,就会出现软件锁定请求。系统锁定了要接收数据的页,因此其他进程无法请求和使用该页。  


Procedure如何检查队列活动 (sar -q)

  1. 使用 sar -q 命令可报告以下信息:

    • 队列被占用时的平均队列长度。

    • 队列处于占用状态的时间百分比。


    $ sar -q
    00:00:00 runq-sz %runocc swpq-sz %swpocc

    以下列表介绍了 -q 选项的输出。

    runq-sz

    内存中等待 CPU 以便运行的内核线程数。通常,此值应小于 2。如果此值持续偏高,则表明系统可能计算密集 (CPU-bound)。

    %runocc

    占用分发队列的时间百分比。

    swpq-sz

    交换 sar 命令的进程队列。

    %swpocc

    交换 sar 命令的进程队列。


示例 13–12 检查队列活动

以下示例显示 sar -q 命令的输出。如果 %runocc 值较大(大于 90%)并且 runq-sz 值大于 2,则表明 CPU 负载较大,并且响应变慢。在此情况下,可能需要提供附加的 CPU 容量,才能获得可接受的系统响应速度。


# sar -q
SunOS system2 5.10 Generic_142909-13 sun4u    06/28/2010

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

Procedure如何检查未使用的内存 (sar -r)

  1. 使用 sar -r 命令可报告当前未使用的内存页数和交换文件磁盘块数。


    $ sar -r
    00:00:00 freemem freeswap
    01:00:00    2135   401922

    以下列表介绍了 -r 选项的输出:

    freemem

    在该命令采样的时间间隔内可供用户进程使用的平均内存页数。页面大小与计算机有关。

    freeswap

    可用于页交换的 512 字节磁盘块数。


示例 13–13 检查未使用的内存 (sar -r)

以下示例显示 sar -r 命令的输出。


$ sar -r

SunOS balmyday 5.10 s10_51 sun4u    03/18/2004

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

Procedure如何检查 CPU 使用率 (sar -u)

  1. 使用 sar -u 命令可显示 CPU 使用率统计信息。


    $ sar -u
    00:00:00    %usr    %sys    %wio   %idle
    01:00:00       0       0       0     100

    没有任何选项的 sar 命令与 sar -u 命令等效。在任意给定时刻,处理器都会处于繁忙或空闲状态。繁忙时,处理器可能处于用户模式或系统模式。空闲时,处理器可能在等待 I/O 完成,或“静止”而不执行任何操作。

    以下列表介绍了 -u 选项的输出:

    %usr

    列出处理器处于用户模式的时间百分比。

    %sys

    列出处理器处于系统模式的时间百分比。

    %wio

    列出处理器空闲并等待 I/O 完成的时间百分比。

    %idle

    列出处理器空闲并且未等待 I/O 的时间百分比。

    %wio 值越大,通常表示磁盘速率变慢。


示例 13–14 检查 CPU 使用率 (sar -u)

以下示例显示 sar -u 命令的输出。


$ sar -u

SunOS balmyday 5.10 s10_51 sun4u    03/18/2004

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

Procedure如何检查系统表状态 (sar -v)

  1. 使用 sar -v 命令可报告进程表、inode 表、文件表和共享内存记录表的状态。


    $ 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   

示例 13–15 检查系统表状态 (sar -v)

以下缩写示例显示 sar -v 命令的输出。此示例表明,所有表都足够大,因此没有溢出。这些表都基于物理内存量进行动态分配。


$ sar -v

SunOS balmyday 5.10 s10_51 sun4u    03/18/2004

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  

下表介绍了 -v 选项的输出。

字段名 

说明 

proc-sz

内核中当前正在使用或已分配的进程项(proc 结构)数。

inod-sz

与内核中分配的最大 inode 数相比,内存中的 inode 总数。此数字不是严格的高水位标记。该数字可以溢出。 

file-sz

打开的系统文件表的大小。由于文件表的空间是动态分配的,因此 sz 被给定为 0

ov

在每个表的采样点之间发生的溢出。  

lock-sz

内核中当前正在使用或分配的共享内存记录表项的数量。由于共享内存记录表的空间是动态分配的,因此 sz 被给定为 0


Procedure如何检查交换活动 (sar -w)

  1. 使用 sar -w 命令可报告交换和切换活动。


    $ 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

    以下列表介绍了 sar -w 命令输出的目标值和观测值。

    swpin/s

    每秒传入内存的 LWP 数。

    bswin/s

    每秒为换入传送的块数 /* (float)PGTOBLK(xx->cvmi.pgswapin) / sec_diff */

    swpot/s

    每秒换出内存的平均进程数。如果该数字大于 1,则可能需要增大内存。

    bswot/s

    每秒为换出传送的块数。

    pswch/s

    每秒的内核线程切换数。


    注 –

    所有进程换入都包括进程初始化。



示例 13–16 检查交换活动 (sar -w)

以下示例显示 sar -w 命令的输出。


$ sar -w

SunOS balmyday 5.10 s10_51 sun4u    03/18/2004

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

Procedure如何检查终端活动 (sar -y)

  1. 使用 sar -y 命令可监视终端设备活动。


    $ 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

    如果有多个终端 I/O,则可使用此报告来确定是否存在任何错误行。以下列表中定义了记录的活动。

    rawch/s

    每秒输入字符数(原始队列)。

    canch/s

    canon(规则队列)每秒处理的输入字符数。

    outch/s

    每秒输出字符数(输出队列)。

    rcvin/s

    每秒接收器硬件中断次数。

    xmtin/s

    每秒传送器硬件中断次数。

    mdmin/s

    每秒调制解调器中断次数。

    每秒调制解调器中断次数 (mdmin/s) 应接近于零。每秒的接收和传送中断次数(rcvin/sxmtin/s)应分别小于或等于传入或传出字符数。否则,请检查是否存在错误行。


示例 13–17 检查终端活动 (sar -y)

以下示例显示 sar -y 命令的输出。


$ sar -y

SunOS balmyday 5.10 s10_51 sun4u    03/18/2004

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

Procedure如何检查总体系统性能 (sar -A)

  1. 使用 sar -A 命令可显示所有选项的统计信息,以提供总体系统性能的综览。

    此命令可提供更具全局性的透视。如果显示来自多个单时间段的数据,则该报告会包括平均值。

自动收集系统活动数据 (sar)

自动收集系统活动数据时需要使用三个命令:sadcsa1sa2

sadc 数据收集实用程序定期收集系统数据,并以二进制格式的文件保存数据,每 24 小时保存一个文件。可以将 sadc 命令设置为定期运行(通常每小时一次),并在系统引导到多用户模式时运行。数据文件放置在 /var/adm/sa 目录中。每个文件都命名为 sadd,其中 dd 是当前日期。命令的格式如下:


/usr/lib/sa/sadc [t n] [ofile]

该命令以 t 秒为间隔采样 n 次,两次采样之间的间隔应大于 5 秒。然后,此命令将向二进制 ofile 文件或标准输出中写入数据。

引导时运行 sadc 命令

sadc 命令应在系统引导时运行,以记录自计数器重置为零以来的统计信息。为确保在引导时运行 sadc 命令,svcadm enable system/sar:default 命令会向每日数据文件中写入一条记录。

该命令项格式如下:


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

使用 sa1 脚本定期运行 sadc 命令

为了生成定期记录,您需要定期运行 sadc 命令。最简单的方法是在 /var/spool/cron/crontabs/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

sys crontab 项执行以下操作:

可以更改这些缺省设置,以满足您的需要。

使用 sa2 Shell 脚本生成报告

另一个 shell 脚本 sa2 可生成报告,而不是二进制数据文件。sa2 命令调用 sar 命令,并将 ASCII 输出写入报告文件。

设置自动数据收集 (sar)

sar 命令可用于自行收集系统活动数据,或报告 sadc 命令所创建的每日活动文件中收集的内容。

sar 命令格式如下:


sar [-aAbcdgkmpqruvwy] [-o file] t [n] 

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

以下 sar 命令每隔 t 秒对操作系统中的累积活动计数器进行采样,共进行 n 次。t 应大于或等于 5 秒。否则,命令本身会对样本产生影响。必须指定采样的时间间隔。否则,命令将根据第二种格式运行。n 的缺省值为 1。以下示例以 10 秒为间隔抽取两个样本。如果指定 -o 选项,则以二进制格式保存样本。


$ sar -u 10 2

有关 sar 命令的其他重要信息包括:

下表列出了 sar 选项及其操作。

表 13–2 sar 命令的选项

选项 

操作 

-a

检查文件访问操作 

-b

检查缓冲区活动  

-c

检查系统调用  

-d

检查每个块设备的活动 

-g

检查页出和内存释放  

-k

检查内核内存分配  

-m

检查进程间通信  

-nv

检查系统表状态  

-p

检查交换和分发活动  

-q

检查队列活动  

-r

检查未使用的内存  

-u

检查 CPU 使用率 

-w

检查交换和切换卷  

-y

检查终端活动  

-A

报告总体系统性能,这与输入所有选项等效。 

不使用任何选项等效于调用带 -u 选项的 sar 命令。

Procedure如何设置自动数据收集

  1. 成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 运行 svcadm enable system/sar:default 命令。

    此版本的 sadc 命令会写入一条特殊记录,其中标记了将计数器重置为零的时间(引导时间)。

  3. 编辑 /var/spool/cron/crontabs/sys crontab 文件。


    注 –

    不要直接编辑 crontab 文件。而要改用 crontab -e 命令对现有 crontab 文件进行更改。



    # crontab -e sys
    
  4. 取消对以下行的注释:


    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

    有关更多信息,请参见 crontab(1) 手册页。