显示虚拟内存统计信息(vmstat)
第20 章• 监视系统性能(任务) 345
如何显示系统事件信息(vmstat -s )
运行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
23361pages 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
98241copy-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
◗
显示虚拟内存统计信息(vmstat)
346 系统管理指南:高级管理• 2006 年7 月
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
如何显示交换统计信息(vmstat -S)
运行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 21 3 10 99
以下列表介绍了交换统计信息字段。有关其他字段的说明,请参见表20–1。
si 每秒换入的平均LWP 数
so 换出的完整进程数
注– vmstat 命令会截断si 和so 字段的输出。应使用sar 命令显示更精确的交换统计信息记
录。
如何显示每台设备的中断次数(vmstat -i)
运行vmstat -i 命令,以显示每台设备的中断次数。
◗
◗
显示虚拟内存统计信息(vmstat)
第20 章• 监视系统性能(任务) 347
显示每台设备的中断次数
以下示例显示vmstat -i 命令的输出。
$ vmstat -i
interrupt total rate
--------------------------------
clock 52163269 100
esp0 2600077 4
zsc0 253410
zsc14891 7 0
cgsixc0 459 0
lec0 400882 0
fdc0 14 0
bppc0 0 0
audiocs0 0 0
--------------------------------
Total 55238959 105
显示磁盘使用率信息( iostat)
使用iostat 命令报告有关磁盘输入和输出的统计信息,并生成对吞吐量、使用率、队列长
度、事务速率和服务时间的测量值。有关此命令的详细说明,请参阅iostat(1M) 手册页。
如何显示磁盘使用率信息(iostat)
使用iostat 命令和时间间隔秒数可以显示磁盘使用率信息。
$ iostat 5
tty fd0 sd3 nfs1nfs31 cpu
示例20–2
◗
显示磁盘使用率信息( iostat)
348 系统管理指南:高级管理• 2006 年7 月
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) 的统计信息。
显示磁盘使用率信息
以下示例显示每隔5 秒收集的磁盘统计信息。
$ iostat 5
tty sd0 sd6 nfs1nfs49 cpu
tin tout kps tps serv kps tps serv kps tps serv kps tps serv us sy wt id
0 01 0 49 0 0 0 0 0 0 0 0 1 50 0 0 1 0 0
0 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
0 1 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
0 1 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
0 1 464 6 1 2 3 0 0 0 0 0 0 0 0 0 0 01 99
0 1 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
0 1 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
0 1 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
0 1 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
0 1 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
0 1 631 23 0 0 0 0 0 0 0 0 0 0 01 99
0 1 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
0 1 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
0 1 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
下表描述了iostat n 命令输出中的字段。
示例20–3
显示磁盘使用率信息( iostat)
第20 章• 监视系统性能(任务) 349
设备类型字段名说明
终端设备类型
tin 终端输入队列中的字符数
tout 终端输出队列中的字符数
磁盘设备类型
bps 每秒块数
tps 每秒事务数
serv 平均服务时间,以毫秒为单位
CPU 设备类型
us 在用户模式下
sy 在系统模式下
wt 等待I/O
id 空闲
如何显示扩展磁盘统计信息(iostat -xtc )
运行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
nfs10.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)
350 系统管理指南:高级管理• 2006 年7 月
iostat -xtc 命令对每个磁盘显示一行输出。以下列表描述了输出字段。
r/s 每秒读取次数
w/s 每秒写入次数
kr/s 每秒读取的千字节数
kw/s 每秒写入的千字节数
wait 等待服务的平均事务数(队列长度)
actv 处于活动服务状态的平均事务数
svc_t 平均服务时间,以毫秒为单位
%w 队列不为空的时间百分比
%b 磁盘繁忙的时间百分比
显示磁盘空间统计信息(df)
使用df 命令可以显示挂载的每个磁盘中的可用磁盘空间量。df 报告的usable 磁盘空间只反
映容量极限的90%,因为报告统计信息允许超出总可用空间的10%。此头空间通常保持为
空,以实现更好的性能。
df 命令实际报告的磁盘空间百分比是已用空间除以可用空间。
如果文件系统超出容量的90%,则可使用cp 命令将文件转移至具有可用空间的磁盘。或
者,使用tar 或cpio 命令将文件转移至磁带。也可以删除文件。
有关此命令的详细说明,请参见df(1M) 手册页。
如何显示磁盘空间信息(df -k)
使用df -k 命令以千字节为单位显示磁盘空间信息。
$ df -k
Filesystem kbytes used avail capacity Mounted on
/dev/dsk/c0t3d0s0 192807 40231 133296 24% /
显示文件系统信息
以下示例显示df -k 命令的输出。
◗
示例20–4
显示磁盘空间统计信息(df)
第20 章• 监视系统性能(任务) 351
$ 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 挂载点
显示磁盘空间统计信息(df)
352 系统管理指南:高级管理• 2006 年7 月
监视系统活动(任务图)
任务说明参考
检查文件访问。使用sar 命令和-a 选项显示文件访问操作状
态。
第354 页中的“如何检查文
件访问(sar -a)”
检查缓冲区活动。使用sar 命令和-b 选项显示缓冲区活动统计
信息。
第355 页中的“如何检查缓
冲区活动(sar -b)”
检查系统调用统计信
息。
使用sar 命令和-c 选项显示系统调用统计信
息。
第357 页中的“如何检查系
统调用统计信息(sar -c)”
检查磁盘活动。使用sar 命令和-d 选项检查磁盘活动。第359 页中的“如何检查磁
盘活动(sar -d)”
检查页出和内存。使用sar 命令和-g 选项显示页出内存释放活
动。
第361 页中的“如何检查页
出和内存(sar -g)”
检查内核内存分配。内核内存分配(Kernel MemoryAllocation,
KMA) 允许内核子系统根据需要分配和释放内
存。使用sar 命令和-k 选项检查KMA。
第363 页中的“如何检查内
核内存分配(sar -k)”
检查进程间通信。使用sar 命令和-m 选项报告进程间通信活
动。
第365 页中的“如何检查进
程间通信(sar -m)”
检查页入活动。使用sar 命令和-p 选项报告页入活动。第366 页中的“如何检查页
入活动(sar -p)”
检查队列活动。使用sar 命令和-q 选项检查以下内容:
占用队列时的平均队列长度
占用队列时的时间百分比
第368 页中的“如何检查队
列活动(sar -q)”
检查未使用的内存。使用sar 命令和-r 选项报告当前使用的内存
页数和交换文件磁盘块数。
第370 页中的“如何检查未
使用的内存(sar -r)”
检查CPU 使用率。使用sar 命令和-u 选项显示CPU 使用率统计
信息。
第371 页中的“如何检查
CPU 使用率(sar -u)”
检查系统表状态。使用sar 命令和-v 选项报告有关以下系统表
的状态:
进程
Inode
文件
共享内存记录
第373 页中的“如何检查系
统表状态(sar -v)”
检查交换活动。使用sar 命令和-w 选项检查交换活动。第374 页中的“如何检查交
换活动(sar -w)”
检查终端活动。使用sar 命令和-y 选项监视终端设备活动。第376 页中的“如何检查终
端活动(sar -y)”
监视系统活动(任务图)
第20 章• 监视系统性能(任务) 353
任务说明参考
检查总体系统性能。sar -A 命令可通过显示所有选项的统计信息提
供总体系统性能信息。
第378 页中的“如何检查总
体系统性能(sar -A)”
设置自动数据收集。要设置系统以自动收集数据并运行sar 命令,
请执行以下操作:
运行svcadm enable system/sar:default
命令
编辑/var/spool/cron/crontabs/sys 文件
第380 页中的“如何设置自
动数据收集”
监视系统活动(sar)
使用sar 命令执行以下任务:
组织并查看有关系统活动的数据。
根据特殊请求访问系统活动数据。
生成自动报告以测量和监视系统性能,并生成特殊请求报告以确定特定性能问题。有关
如何设置要在系统上运行的sar 命令的信息以及对这些工具的说明,请参见第378 页中
的“自动收集系统活动数据(sar)”。
有关此命令的详细说明,请参见sar(1) 手册页。
如何检查文件访问(sar -a)
使用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
◗
监视系统活动(sar)
354 系统管理指南:高级管理• 2006 年7 月
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:010 3 0
08:40:00 0 3 0
09:00:00 0 3 0
09:20:010 10 0
09:40:010 10
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 选项有助于查看磁盘与应用程序的相关情
况。
如何检查缓冲区活动(sar -b)
使用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
◗
监视系统活动(sar)
第20 章• 监视系统性能(任务) 355
检查缓冲区活动(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:010 0 100 0 0 94 0 0
03:00:00 0 0 100 0 0 92 0 0
04:00:00 0 11 00 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 11 00 0 1 94 0 0
08:40:010 1 100 0 1 93 0 0
09:00:00 0 11 00 0 1 93 0 0
09:20:00 0 11 00 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 198 0 170 0 0
示例20–5
监视系统活动(sar)
356 系统管理指南:高级管理• 2006 年7 月
11:00:00 0 1 100 0 1 75 0 0
Average 0 11 00 0 1 91 0 0
下表描述了-b 选项显示的缓冲区活动。
字段名说明
bread/s 从磁盘提交至高速缓存存储区的每秒平均读取数
lread/s 每秒从高速缓存存储区进行的平均逻辑读取数
%rcache 在高速缓存存储区中找到的逻辑读取的分数(100
%减去bread/s 与lread/s 之比)
bwrit/s 每秒平均从高速缓存存储区写入磁盘的物理块数
(512 块)
lwrit/s 每秒平均对高速缓存存储区进行的逻辑写入数
%wcache 在高速缓存存储区中找到的逻辑写入的分数(100
%减去bwrit/s 与lwrit/s 之比)
pread/s 每秒平均使用字符设备接口的物理读取数
pwrit/s 每秒平均使用字符设备接口的物理写入请求数
最重要的项是高速缓存命中率%rcache 和%wcache。这两项用于度量系统缓冲的有效性。如
果%rcache 低于90% 或者%wcache 低于65%,则可通过增加缓冲区空间来改善性能。
如何检查系统调用统计信息(sar -c)
使用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
检查系统调用统计信息(sar -c)
以下示例显示sar -c 命令的输出。
$ sar -c
◗
示例20–6
监视系统活动(sar)
第20 章• 监视系统性能(任务) 357
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:0189 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.010.01291 4 2395
08:40:01 90 14 9 0.01 0.00 2914 2396
09:00:00 90 14 9 0.010.01291 5 2396
09:20:00 90 14 9 0.010.01291 5 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.0157842 55544
下表描述了-c 选项报告的系统调用类别。通常,读取和写入占系统调用总数的一半。但
是,该百分比会因系统所执行的活动而产生极大的变化。
监视系统活动(sar)
358 系统管理指南:高级管理• 2006 年7 月
字段名说明
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 系统调用传送的字符数(字节)。
如何检查磁盘活动(sar -d)
使用sar -d 命令显示磁盘活动统计信息。
$ sar -d
00:00:00 device %busy avque r+w/s blks/s avwait avserv
检查磁盘活动
此缩写示例演示了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
◗
示例20–7
监视系统活动(sar)
第20 章• 监视系统性能(任务) 359
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
nfs10 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 10.0 6 125 4.3 3.2
nfs7 0 0.0 0 0 0.0 6.0
sd10 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 每秒对设备进行的读取和写入传送数。
监视系统活动(sar)
360 系统管理指南:高级管理• 2006 年7 月
字段名说明
blks/s 每秒传送给设备的512 字节块的数量。
avwait 传送请求在队列中空闲等待的平均时间,以毫秒
为单位。仅当队列被占用时才测量此时间。
avserv 设备完成传送请求所需的平均时间,以毫秒为单
位。对于磁盘而言,此值包括查找时间、旋转延
迟时间和数据传送时间。
请注意,在队列不为空时测量队列长度和等待时间。当%busy 很小时,如果队列和服务时间
很大,则可能表示系统进行周期性的努力,以确保将警报块快速写入磁盘。
如何检查页出和内存(sar -g)
使用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/s 和pgscan/s 字段的值也很大,则表明内存
不足。
sar -g 命令还可表明是否回收inode 的速率过快而引起可重用页丢失。
检查页出和内存(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.010.010.010.00 0.00
◗
示例20–8
监视系统活动(sar)
第20 章• 监视系统性能(任务) 361
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:010.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:010.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 守护程序花费大量时间来检查可用内
存。此情况暗示,可能需要更多内存。
监视系统活动(sar)
362 系统管理指南:高级管理• 2006 年7 月
字段名说明
%ufs_ipf 具有关联的可重用页的iget 从可用列表中取消的
ufs inode 的百分比。这些页面被刷新,并且不能
由进程回收。因此,此字段表示具有页面刷新的
igets 的百分比。如果该值很大,则表明inode 的
可用列表页面密集,并且可能需要增加ufs inode
的数量。
检查内核内存分配
KMA允许内核子系统根据需要分配和释放内存。KMA并不是静态分配在峰值载荷下预计所
需的最大内存量,而是将内存请求划分为三个类别:
小型(少于256 字节)
大型(512 字节至4 字节)
超大型(大于4 千字节)
KMA保留两个内存池,以满足小型和大型请求。超大型请求则通过从系统页面分配器中分
配内存来满足。
如果您所检查的系统用来编写使用KMA资源的驱动程序或STREAMS,则sar -k 命令可能
很有用。否则,您可能不需要它所提供的信息。使用KMA资源但不一定在退出前返回资源
的所有驱动程序或模块都可能产生内存泄漏。内存泄漏会导致KMA分配的内存量随事件而
增加。因此,如果sar -k 命令的alloc 字段随时间稳定增加,则可能存在内存泄漏。表明
存在内存泄漏的另一种情况是请求失败。如果出现此问题,内存泄漏很可能导致KMA无法
保留和分配内存。
如果似乎存在内存泄漏,则应检查可能从KMA请求内存但未返回内存的所有驱动程序或
STREAMS。
如何检查内核内存分配(sar -k)
使用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
检查内核内存分配(sar -k)
下面是sar -k 输出的缩写示例。
◗
示例20–9
监视系统活动(sar)
第20 章• 监视系统性能(任务) 363
$ 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 选项的输出。
监视系统活动(sar)
364 系统管理指南:高级管理• 2006 年7 月
字段名说明
sml_mem KMA在小型内存请求池中可用的内存量,以字节
为单位。在此池中,小型请求小于256 字节。
alloc KMA已从其小型内存请求池向小型内存请求分配
的内存量,以字节为单位。
fail 请求少量内存并失败的请求数。
lg_mem KMA在大型内存请求池中可用的内存量,以字节
为单位。在此池中,大型请求介于512 字节到4
千字节之间。
alloc KMA已从其大型内存请求池向大型内存请求分配
的内存量,以字节为单位。
fail 请求大量内存并失败的请求数。
ovsz_alloc 为大于4 千字节的超大型请求分配的内存量。这
些请求可通过页面分配器来满足。因此,不存在
池。
fail 因请求超大量内存而失败的请求数。
如何检查进程间通信(sar -m)
使用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 每秒的信号操作数
检查进程间通信(sar -m)
以下缩写示例显示sar -m 命令的输出。
$ sar -m
◗
示例20–10
监视系统活动(sar)
第20 章• 监视系统性能(任务) 365
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:010.00 0.00
06:00:00 0.00 0.00
Average 0.00 0.00
如何检查页入活动(sar -p)
使用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
检查页入活动(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
◗
示例20–11
监视系统活动(sar)
366 系统管理指南:高级管理• 2006 年7 月
01:00:00 0.09 0.00 0.00 0.78 2.02 0.00
02:00:010.08 0.00 0.00 0.78 2.02 0.00
03:00:00 0.09 0.00 0.00 0.812.07 0.00
04:00:00 0.110.010.010.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:010.1 3 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.311 .45 4.00 0.00
下表说明了通过-p 选项报告的统计信息。
字段名说明
atch/s 每秒通过回收当前在内存中的页来满足的页面错
误数(每秒附加数)。例如从可用列表中回收无
效的页,以及共享其他进程当前正在使用的文本
页。例如,两个或多个进程同时访问同一程序文
本。
监视系统活动(sar)
第20 章• 监视系统性能(任务) 367
字段名说明
pgin/s 文件系统每秒接收页入请求的次数。
ppgin/s 每秒调进的页数。单个页入请求(例如软件锁定
请求,请参见slock/s)或块大小很大时可能涉
及多个页的调进。
pflt/s 因保护错误引起的页面错误数。保护错误实例表
明非法访问页面和“写复制”。通常,此数目主
要来自于“写复制”错误。
vflt/s 每秒的地址转换页面错误数。这些错误称为有效
性错误。当给定虚拟地址的有效进程表项不存在
时,会发生有效性错误。
slock/s 每秒内由要求实际I/O 操作的软件锁定请求引起
的错误数。发生软件锁定请求的一个示例是,从
磁盘向内存传送数据时,系统锁定了要接收数据
的页,因此其他进程无法请求和使用该页。
如何检查队列活动(sar -q)
使用sar-q 命令报告以下信息:
队列被占用时的平均队列长度。
队列处于占用状态的时间百分比。
$ sar -q
00:00:00 runq-sz %runocc swpq-sz %swpocc
以下列表描述了-q 选项的输出。
runq-sz 内存中等待CPU 以便运行的内核线程数。通常,此值应小于2。如果此值持续
很高,则表明系统可能是CPU 限制系统。
%runocc 占用分发队列的时间百分比。
swpq-sz 不再由sar 命令报告。
%swpocc 不再由sar 命令报告。
检查队列活动
以下示例显示sar -q 命令的输出。如果%runocc 值较大(大于90%)并且runq-sz 值大于
2,则表明CPU 负载较大,并且响应变慢。在此情况下,可能需要提供附加的CPU 容量,
才能获得可接受的系统响应速度。
◗
示例20–12
监视系统活动(sar)
368 系统管理指南:高级管理• 2006 年7 月
$ sar -q
SunOS balmyday 5.10 s10_51 sun4u 03/18/2004
00:00:04 runq-sz %runocc swpq-sz %swpocc
01:00:00 1.0 0 0.0 0
02:00:011 .3 0 0.0 0
03:00:00 1.0 0 0.0 0
04:00:00 1.0 0 0.0 0
05:00:00 1.0 0 0.0 0
06:00:00 2.0 0 0.0 0
07:00:00 0.0 0 0.0 0
08:00:00 1.0 0 0.0 0
08:20:00 1.0 0 0.0 0
08:40:012.0 0 0.0 0
09:00:00 0.0 0 0.0 0
09:20:00 1.0 0 0.0 0
09:40:00 1.2 2 0.0 0
10:00:00 1.2 2 0.0 0
10:20:00 1.0 1 0.0 0
10:40:00 1.3 9 0.0 0
11:00:00 1.2 7 0.0 0
Average 1.2 1 0.0 0
监视系统活动(sar)
第20 章• 监视系统性能(任务) 369
如何检查未使用的内存(sar -r)
使用sar -r 命令报告当前未使用的内存页数和交换文件磁盘块数。
$ sar -r
00:00:00 freemem freeswap
01:00:00 2135 401922
以下列表描述了-r 选项的输出。
freemem 在该命令采样的时间间隔内可供用户进程使用的平均内存页数。页面大小与计
算机有关。
freeswap 可用于页交换的512 字节磁盘块数。
检查未使用的内存(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
◗
示例20–13
监视系统活动(sar)
370 系统管理指南:高级管理• 2006 年7 月
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
如何检查CPU 使用率(sar -u)
使用sar -u 命令显示CPU 使用率统计信息。
$ sar -u
00:00:00 %usr %sys %wio %idle
01:00:00 0 0 0 1 0 0
没有任何选项的sar 命令与sar -u 命令等效。在任意给定时刻,处理器都会处于繁忙或空
闲状态。繁忙时,处理器可能处于用户模式或系统模式。空闲时,处理器可能在等待I/O 完
成,或“静止”而不执行任何操作。
以下列表描述了-u 选项的输出。
%usr 列出处理器处于用户模式的时间百分比
%sys 列出处理器处于系统模式的时间百分比
%wio 列出处理器空闲并等待I/O 完成的时间百分比
%idle 列出处理器空闲并且未等待I/O 的时间百分比
%wio 值越大,通常表示磁盘速率变慢。
◗
监视系统活动(sar)
第20 章• 监视系统性能(任务) 371
检查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 1 0 0
02:00:010 0 0 100
03:00:00 0 0 0 1 0 0
04:00:00 0 0 0 1 0 0
05:00:00 0 0 0 1 0 0
06:00:00 0 0 0 1 0 0
07:00:00 0 0 0 1 0 0
08:00:00 0 0 0 1 0 0
08:20:00 0 0 0 99
08:40:010 0 0 99
09:00:00 0 0 0 99
09:20:00 0 0 0 99
09:40:00 4 10 95
10:00:00 4 2 0 94
10:20:00 110 98
10:40:00 18 3 0 79
11:00:00 25 3 0 72
示例20–14
监视系统活动(sar)
372 系统管理指南:高级管理• 2006 年7 月
Average 2 0 0 98
如何检查系统表状态(sar -v)
使用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
检查系统表状态(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:0169/801 0 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
◗
示例20–15
监视系统活动(sar)
第20 章• 监视系统性能(任务) 373
08:20:00 69/8010 0 3494/34703 0 0/0 0 0/0
08:40:0169/801 0 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。
如何检查交换活动(sar -w)
使用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)
374 系统管理指南:高级管理• 2006 年7 月
以下列表说明了sar -w 命令输出的目标值和观测值。
swpin/s 每秒传入内存的LWP 数。
bswin/s 每秒为换入传送的块数。/* (float)PGTOBLK(xx->cvmi.pgswapin) / sec_diff
*/
swpot/s 每秒换出内存的平均进程数。如果该数字大于1,则可能需要增大内存。
bswot/s 每秒为换出传送的块数。
pswch/s 每秒的内核线程切换数。
注– 所有进程换入都包括进程初始化。
检查交换活动(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:010.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:010.00 0.0 0.00 0.0 132
示例20–16
监视系统活动(sar)
第20 章• 监视系统性能(任务) 375
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)
使用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) 应接近于零。每秒的接收和传送中断次数(xmtin/s 和
rcvin/s)应分别小于或等于传入或传出字符数。否则,请检查是否存在错误行。
◗
监视系统活动(sar)
376 系统管理指南:高级管理• 2006 年7 月
检查终端活动(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
示例20–17
监视系统活动(sar)
第20 章• 监视系统性能(任务) 377
Average 0 0 10 0 0
如何检查总体系统性能(sar -A)
使用sar -A 命令显示所有选项的统计信息,以提供总体系统性能的视图。
此命令可提供更具全局性的透视。如果显示来自多个单时间段的数据,则该报告会包括平
均值。
自动收集系统活动数据(sar)
系统活动数据的自动收集中涉及三个命令:sadc、sa1 和sa2。
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 文件中取消对下列行的注释:
◗
自动收集系统活动数据(sar)
378 系统管理指南:高级管理• 2006 年7 月
# 0 * * * 0-6 /usr/lib/sa/sa1
# 20,40 8-17 * * 1 -5 /usr/lib/sa/sa1
# 5 1 8 * * 15-/usr/lib/sa/sa2 -s 8:00 -e 18:01 -i 1200 -A
sys crontab 项执行以下操作:
前两个crontab 项可在星期一到星期五从上午8 点到下午5 点,每20 分钟或每小时向
/var/adm/sa/sadd 文件写入一条记录。
第三项可从星期一到星期五每小时向/var/adm/sa/sardd 文件写入一条记录,并且可以
包括所有sar 选项。
可以更改这些缺省设置,以满足您的需要。
使用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 命令将从以前记录的文件中提取数据。此文件是由-f
选项(或缺省由标准每日活动文件/var/adm/sa/sadd)为最近一天指定的文件。
-s 和-e 选项定义报告的开始时间和结束时间。开始和结束时间的格式为hh[:mm[:ss]],
其中,hh、mm和ss 表示小时、分钟和秒。
自动收集系统活动数据(sar)
第20 章• 监视系统性能(任务) 379
-i 选项以秒为单位指定记录选择之间的间隔。如果不包括-i 选项,则报告在每日活动
文件中找到的所有间隔。
下表列出了sar 选项及其操作。
表20–2 sar 命令的选项
选项操作
-a 检查文件访问操作
-b 检查缓冲区活动
-c 检查系统调用
-d 检查每个块设备的活动
-g 检查页出和内存释放
-k 检查内核内存分配
-m 检查进程间通信
-nv 检查系统表状态
-p 检查交换和分发活动
-q 检查队列活动
-r 检查未使用的内存
-u 检查CPU 使用率
-w 检查交换和切换卷
-y 检查终端活动
-A 报告总体系统性能,这与输入所有选项等效。
不使用任何选项等效于调用带-u 选项的sar 命令。
如何设置自动数据收集
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《System
Administration Guide: Security Services》中的“Configuring RBAC (Task Map)”。
运行svcadm enable system/sar:default 命令。
此版本的sadc 命令会写入一条特殊记录,其中标记了将计数器重置为零的时间(引导时
间)。
1
2
自动收集系统活动数据(sar)
380 系统管理指南:高级管理• 2006 年7 月
编辑/var/spool/cron/crontabs/sys crontab 文件并取消以下行的注释:
# 0 * * * 0-6 /usr/lib/sa/sa1
# 20,40 8-17 * * 1 -5 /usr/lib/sa/sa1
# 5 1 8 * * 15-/usr/lib/sa/sa2 -s 8:00 -e 18:01 -i 1200 -A
3
自动收集系统活动数据(sar)
第20 章• 监视系统性能(任务) 381
382
软件问题疑难解答(概述)
本章提供软件问题疑难解答的一般概述,其中包括有关系统崩溃的疑难解答以及查看系统
消息的信息。
以下是本章中信息的列表。
第383 页中的“疑难解答方面的新增内容”
第385 页中的“有关软件疑难解答任务的参考信息”
第385 页中的“系统崩溃疑难解答”
第386 页中的“系统崩溃疑难解答核对表”
疑难解答方面的新增内容
本节介绍Solaris 发行版的新增或更改的疑难解答信息。有关Solaris 新增功能的完整列表以
及Solaris 发行版的描述,请参见《Solaris 10 What’s New》。
Solaris 10 6/06 OS 中可能存在的CommonAgent
Container 问题
Solaris 10 6/06:CommonAgent Container 是现已包括在Solaris OS 中的独立Java 程序。此程
序可为Java 管理应用程序实现容器。CommonAgent Container 提供一种针对基于Java
Management Extensions (JMX) 和Java Dynamic Management Kit (Java DMK) 的功能设计的管理
基础结构。该软件由SUNWcacaort 软件包安装,并且驻留在/usr/lib/cacao 目录中。
通常,容器是不可见的。但在以下两种情况下,您可能需要与容器守护进程交互:
其他应用程序可能会尝试使用为CommonAgent Container 保留的网络端口。
如果证书库遭到破坏,则可能需要重新生成CommonAgent Container 证书密钥。
有关如何解决这些问题的信息,请参见第426 页中的“Solaris OS 中CommonAgent
Container 问题的疑难解答”。
21 第2 1 章
383
x86: SMF 引导归档服务可能在系统重新引导期间失
败
Solaris 10 1/06:如果系统在基于GRUB 的引导环境中崩溃,可能是SMF 服务
svc:/system/boot-archive:default 在系统重新引导时失败。如果出现此问题,请重新引导
系统并在GRUB 引导菜单中选择Solaris 故障安全归档。请遵照提示重新生成引导归档。重
新生成归档后,重新引导系统。要继续引导过程,可以使用svcadm 命令清除
svc:/system/boot-archive:default 服务。有关说明,请参见第422 页中的“x86: SMF 引导
存档服务在系统重新引导期间失败时应执行的操作”。有关基于GRUB 进行引导的更多信
息,请参见《System Administration Guide: Basic Administration》中的第11 章,“GRUB Based
Booting (Tasks)”。
动态跟踪功能
Solaris 10:Solaris 动态跟踪(Dynamic Tracing, DTrace) 功能是一项全面的动态跟踪功能,借
助该功能,可在一个全新级别观察Solaris 内核和用户进程。使用Dtrace 可以动态检测操作
系统内核和用户进程,并记录您在所关注的位置(称为探测器)指定的数据,从而帮助您
了解系统。每个探测器均可与自定义程序(用新的D编程语言编写)关联。DTrace 的所有
检测过程都是完全动态的,并且可用于产品化的系统。有关更多信息,请参见dtrace(1M)
手册页和《Solaris Dynamic Tracing Guide》。
kmdb 将kadb 替换为标准Solaris 内核调试程序
Solaris 10: kmdb 已取代kadb,成为标准的“现场”Solaris 内核调试程序。
kmdb 在实时内核调试中实现了mdb 的所有强大功能和灵活性。kmdb 支持以下各项:
调试程序命令(dcmds)
调试程序模块(dmods)
访问内核类型数据
内核执行控制
检查
修改
有关更多信息,请参见kmdb(1) 手册页。有关使用kmdb 对系统进行故障排除的逐步说明,请
参见《System Administration Guide: Basic Administration》中的“How to Boot the SystemWith
the Kernel Debugger (kmdb)”。
疑难解答方面的新增内容
384 系统管理指南:高级管理• 2006 年7 月
有关软件疑难解答任务的参考信息
疑难解答任务更多信息
管理系统崩溃信息第24 章
管理核心转储文件第23 章
重新引导失败和备份问题等软件问题的疑难解答第25 章
文件访问问题疑难解答第26 章
打印问题疑难解答第27 章
解决UFS 文件系统的一致性问题第28 章
软件包问题疑难解答第29 章
系统崩溃疑难解答
如果运行Solaris 操作系统的系统崩溃,请向服务提供商提供尽可能多的信息,包括崩溃转
储文件。
系统崩溃时应执行的操作
要记住的最重要的事情包括:
1. 记录系统控制台消息。
如果系统崩溃,则使其重新运行可能是最紧迫的事情。但是,在重新引导系统之前,请
先检查控制台屏幕上的消息。这些消息可能有助于了解导致崩溃的原因。即使系统自动
重新引导并且控制台消息已从屏幕上消失,仍然可以通过查看系统错误日志
(/var/adm/messages 文件)来检查这些消息。有关查看系统错误日志文件的更多信
息,请参见第390 页中的“如何查看系统消息”。
如果频繁出现崩溃并且无法确定其原因,请收集可从系统控制台或/var/adm/messages
文件中获取的所有信息,并准备好以供客户服务代表检查。有关要为服务提供商收集的
疑难解答信息的完整列表,请参见第385 页中的“系统崩溃疑难解答”。
如果系统在崩溃后无法成功重新引导,请参见第25 章。
2. 同步磁盘并重新引导。
ok sync
如果系统在崩溃后无法成功重新引导,请参见第25 章。
查看系统崩溃后是否生成了系统崩溃转储。缺省情况下,会保存系统崩溃转储。有关崩溃
转储的信息,请参见第24 章。