新博客http://www.cnblogs.com/zhjh256 欢迎访问
分类:
2007-12-25 22:25:37
监视系统性能
工具
·acctcom 进程计账;
·busstat 总线硬件计数器;
·cpustat CPU硬件计数器;
·iostat IO & NFS统计;
·kstat 显示内核统计;
·mpstat 处理器统计;
·netstat 网络统计;
·nfsstat NFS服务器统计;
·sar
·vmstat 虚拟内存统计;
显示系统性能信息
1.任务
·显示虚拟内存统计信息:使用vmstat收集虚拟内存统计信息;
·显示系统事件信息:使用vmstat和-s选项显示系统事件信息;
·显示交换信息:使用vmstat和-S显示系统事件信息;
·显示每台设备的中断:使用vmstat和-i显示每台设备的中断次数;
·显示磁盘使用率:使用iostat显示磁盘输入输出统计信息;
·显示扩展磁盘统计信息:使用iostat命令和-xtc选项显示扩展磁盘统计信息;
·显示磁盘空间信息:df –k显示磁盘空间信息;
2.显示虚拟内存统计信息
r:运行队列的长度;
b:等待I/O被阻塞的进程;
w:在某些时候将被交换出去的空闲进程;
swap:空闲的和未保留的交换区;
free:空闲内存的数量;
re:从cache/free列表回收的数量(KB);
mf:次要的缺页—在内存中但没有映射映射的页面;
pi:从文件系统或交换设备调入的数量(KB);
po:调换到文件系统或交换设备的数量(KB);
fr:被释放和摧毁的数量(KB);
de:在写之后被释放的数量(KB);
sr:页扫描/秒;
f0,s0,s1,s2:磁盘0~3的磁盘I/O/秒;
in:中断次数/秒;
sy:系统调用/秒;
cs:上下文切换/秒;
3.显示系统统计事件信息
运行vmstat –s显示自上次引导系统以来发生的系统事件数。
4.显示交换统计信息
运行vmstat –S显示交换统计信息。
si:每秒换入的平均LWP数;
so:换出的完整进程数;
该命令的输出会截断si/so字段的输出,应使用sar命令显示更精确的交换统计信息。
5.显示每台设备的中断次数
运行vmstat –i以显示每台设备的中断次数:
$ vmstat -i
interrupt total rate
--------------------------------
clock 52163269 100
esp0 2600077 4
zsc0 25341 0
audiocs0 0 0
--------------------------------
Total 55238959 105
6.显示磁盘使用率
第一行显示的是自引导系统以来的统计信息,后面每行显示间隔信息,默认情况下显示终端(tty),磁盘(fd/sd),CPU。
Iostat -n输出中的字段解释
·终端: tin 终端输入队列中的字符数;
tout 终端输出队列中的字符数;
·磁盘: bps 每秒块数;
tps 每秒事务数;
serv 平均服务时间,以每秒为单位;
·CPU: us 在用户模式下;
sy 系统模式下;
wt 等待IO;
id 空闲;
7.显示扩展磁盘统计信息
运行iostat –xtc显示扩展磁盘统计信息。
r/s:每秒读取次数;
w/s:每秒写入次数;
kr/s:每秒读取的千字节数;
kw/s:每秒写入的千字节数;
wait:等待服务的平均事务数(队列长度);
actv:出于活动服务状态的的平均事务数;
svc_t:平均服务时间,以毫秒为单位;
%w:队列不为空的时间百分比;
%b:磁盘繁忙的时间百分比;
8.显示磁盘空间信息
使用df命令可以显示挂载的每个磁盘中的可用磁盘空间量。Df报告的usable磁盘空间只反映容量极限的90%,磁头空间通常保持为空已实现更好的性能。
如果文件系统容量超过90%,可使用cp命令将文件移到其他位置。或使用tar/cpio移动到磁带。
输出解释:
kbytes:文件系统中可用空间的总大小;
used:已用空间量;
avail:可用空间量;
capacity:已用空间量,表示总容量的百分比;
mounted on:挂载点;
监视系统活动
1.任务
·检查文件访问:使用sar命令和-a选项显示文件访问操作状态;
·检查缓冲区活动;使用sar命令和-a选项显示缓冲区状态;
·检查系统调用统计信息:使用sar命令和-a选项显示系统调用统计信息;
·检查磁盘活动:使用sar命令和-d选项显示磁盘活动;
·检查页出和内存:使用sar命令和-g选项显示页出内存释放活动;
·检查内核内存分配:使用sar命令和-k选项显示KMA;
·检查进程间的通信:使用sar命令和-m选项显示进程间的通信;
·检查页入活动:使用sar命令和-p选项显示页入活动;
·检查队列活动:使用sar命令和-q选项检查一下内容:占用队列时的平均队列长度;占用队列时的实践百分比;
·检查未使用的内存:使用sar命令和-r选项报告当前使用的内存页数和交换文件磁盘块数。
·检查CPU使用率:使用sar命令和-u选项显示cpu使用率统计信息;
·检查系统表状态:使用sar命令和-v选项报告以下系统表状态:进程,inode,文件,内向内存纪录;
·检查交换活动:使用sar命令和-w选项显示交换活动;
·检查终端活动:使用sar命令和-y选项显示终端活动;
·检查系统总体性能:使用sar命令和-A显示系统总体性能;
·设置自动数据收集:
--运行svcadm enable system/sar:default命令;
--编辑/var/spool/cron/crontabs/sys文件;
2.监视系统活动sar
使用sar命令可以执行以下任务:
·组织并查看有关系统活动的数据;
·根据特定请求访问系统活动数据;
·生成自动报告以测量和监视性能,并生成特殊请求报告以确定性能问题;
3.检查文件访问
使用sar –a显示文件访问操作统计信息;
$ sar -a
SunOS balmyday 5.10 s10_51 sun4u
Average 0 3 0
输出解释:
iget/s:对于不位于目录名称查阅高速缓存DNLC中的inode发出的请求数;
namei/s:每秒搜索的文件系统路径数;如果namei在DNLC中找不到目录名称,则调用iget以获取文件/目录的inode。
dirbk/s:每秒发生的目录块读数。
值越大,内核访问用户文件时花费的时间越多,时间的长短反映了应用程序使用文件系统的程度。
4.检查缓冲区活动
使用sar –b可以显示缓冲区活动统计信息。
缓冲区用于存储高速缓存元数据,包括inode、驻面组块和间接块。
bread/s:从磁盘提交至高速缓存存储区的每秒平均读取数;
lread/s:每秒从高速缓存存储区进行的平均逻辑读取数;
%rcache:在高速缓存存储区找到的逻辑读取的分数(100%-bread/s:lread/s);
bwrit/s:每秒平均从高速缓存存储区写入磁盘的物理块数(512块);
lwrit/s:每秒平均对高速缓存存储区进行的逻辑写入数;
%wcache:在高速缓存存储区找到的逻辑写入的分数(100%-bread/s:lread/s);
pread/s:每秒平均使用字符设备接口的物理读取数;
pwrit/s:每秒平均使用字符设备接口的物理写入请求数;
最重要的两项是%rcache和%wcache,如果%rcache小于90%或者%wcache小于65%,可通过增加缓冲区来改善性能。
5.检查系统调用统计信息
使用sar –c显示系统调用统计信息。
$ sar -c
输出说明如下:
scall/s:每秒钟所有类型的系统调用数,通常每个用户每秒5-6次;
sread/s:每秒钟read系统调用数;
swrit/s:每秒钟write系统调用数;
fork/s:每秒钟fork系统调用数;
exec/s:每秒钟exec的系统调用数,如果exec/s除以fork/s大于3,检查是否存在无效的PATH变量;
rchar/s:每秒钟由read系统调用传送的字符数;
wchar/s:每秒钟由write系统调用传送的字符数;
6.检查磁盘活动统计信息
使用sar –d命令检查磁盘活动统计信息。
$ sar -d
SunOS balmyday 5.10 s10_51 sun4u
输出解释如下:
device:监视的磁盘设备的名称;
%busy:设备忙于为传送请求服务的时间份额;
avque:设备忙于为传送请求服务期间的平均请求数;
r+w/s:每秒对设备进行读取和写入的传送数;
blks/s:每秒传送给设备的512字节块的数量;
avwait:传送请求在队列中空闲等待的平均时间,以毫秒为单位;
Avserv:设备完成传送请求所需的时间,以毫秒为单位;
在队列不为空时测量队列长度和等待时间。当%busy很小时,如果队列和服务时间很长,则可能表示系统进行周期性的努力,以确保将警报块快速写入磁盘。
7.检查页出和内存释放情况
使用sar –g命令显示平均页出和内存释放情况。
$ sar -g
sar –g命令的输出可以明确指示是否需要更多的内存。Ps –elf显示page守护程序使用的周期数,如果周期很大并且pgfree/s和pgscan/s也很大,则表明内存不足。
输出解释如下:
pgout/s:每秒的页出请求数;
ppgout/s:每秒调出的页的实际数量。单个页出请求可能涉及到到多个页的调出。
pgfree/s:每秒放置在可用列表中的页数;
pgscan/s:page守护进程每秒扫描的页数。该值如果很大,表明需要更多的内存;
%ufs_ipf:如果该值很大,表明inode的可用列表页面密集,并且可能需要增加ufs inode的数量。
8.检查内核内存分配(通常不需要)
KMA允许内核子系统根据需要分配和释放内存。KMA并不是静态的分配在峰值负载下的最大内存值,而是将内存请求分为三个类别:
·小型:小于256个字节;
·大型:512-4K;
·超大型:大于4K;
KMA保留两个内存池,以满足大型和小型的请求,超大型的请求通过系统页面分配器中分配内存来满足。
$ sar -k
SunOS balmyday 5.10 s10_51 sun4u
输出解释如下:
sml_mem:KMA在小型内存请求池中可用的内存量,以字节为单位;
alloc:KMA已从其小型内存请求池向小型内存请求分配的内存量,以字节为单位;
fail:请求少量内存并且请求失败的数量;
lg_mem:KMA在大型内存请求池中可用的内存量,以字节为单位;
alloc:KMA已从其大型内存请求池向小型内存请求分配的内存量,以字节为单位;
fail:请求大量内存并且请求失败的数量;
ovsz_alloc:为大于4K的超大型请求分配的内存量;
fail:请求超大量内存并且请求失败的数量;
9.检查进程间通信
使用sar –m报告进程间通信活动。
$ sar -m
Average 0.00 0.00
除非使用消息或信号的应用程序,否则这些数字通常为0.
输出解释如下:
msg/s:每秒的消息操作数;
sema/s:每秒的信号操作数;
10.检查页入活动
使用sar –p报告页入活动,包括保护和转换错误。
$ sar -p
Average 0.42 0.22 0.31 1.45 4.00 0.00
输出解释如下:
atch/s:每秒通过回收在内存中的页来满足的页面错误数(每秒附加数)。
pgin/s:文件系统每秒接收页入请求的次数。
ppgin/s:每秒调进的页数,单个页入请求可能涉及多个页面调入。
pflt/s:因保护错误引起的页面错误数。保护错误实例表明非法访问页面和写复制。
vflt/s:每秒的地址转换叶面错误数。
slock/s:每秒内由要求实际io操作的软件锁定请求引起的错误数。
11.检查队列活动
使用sar –q命令报告如下信息:
·队列被占用时的平均队列长度;
·队列处理占用状态的时间百分比;
$ sar -q
如果%runocc较大(>90%)并且runq-sz大于2,则表明CPU负载大,并且相应慢,此时需要提供更多的CPU才能获得可接受的系统响应速度。
输出解释如下:
runq-sz:内存中等待CPU以便运行的内核线程数。通常不大于2,否则可能是CPU限制;
%runocc:占用分发队列的时间百分比;
12.检查未使用的内存
使用sar –r命令报告当前未使用的内存数和交换文件磁盘块数。
$ sar -r
输出解释如下:
freemem:可用用户进程使用的平均内存页数;
freeswap:用于页交换的512字节磁盘块数;
13.检查CPU使用率
使用sar –u显示CPU使用率信息。
$ sar -u
%wio的值越大,表明磁盘速率越慢。
14.检查系统表状态
使用sar –v命令报告进程表,inode表,文件表和共享内存记录表的状态。
$ sar -v
SunOS balmyday 5.10 s10_51 sun4u
这些表都基于物理内存量进行分配。
输出解释如下:
proc-sz:内核中正在使用或以分配的进程项数;
inod-sz:与内核中分配的最大inode节点相比,内存中的inode总数;
file-sz:打开的系统文件标的大小;
ov:在每个表的采样点之间发生的溢出;
lock-sz:内核中当前正在使用或分配的共享内存记录表的数量。
15.检查交换活动
使用sar –w报告系统的交换和切换活动。
$ sar -w
输出解释:
swpin/s:每秒传入内存的LWP数;
bswin/s:每秒为换入传送的块数;
swpot/s:每秒缓存内存的平均进程数,如果该值大于1;
bswot/s:每秒为换出传送的块数;
pswch/s:每秒的内核线程切换数;
16.检查终端活动
使用sar –y命令监视终端设备活动。
$ sar -y
SunOS balmyday 5.10 s10_51 sun4u
如果有多个终端I/O可用该命令确定是否存在错误行。输出解释如下:
rawch/s:每秒输入的字符数;
canch/s:每秒处理的输入字符;
outch/s:每秒输出字符数;
rcvin/s:每秒接收器硬件中断次数;
xmtin/s:每秒传送器硬件中断次数;
mdmin/s:每秒调制解调器中断次数;
17.检查总体统计性能
使用sar –A显示所有选项的统计信息,以提供总体系统性能的视图;