系统管理指南:高级管理

监视系统活动 (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 命令可显示所有选项的统计信息,以提供总体系统性能的综览。

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