aqcjsy1 发表于 2007-12-25 22:25

Solaris系统性能管理


监视系统性能
工具
·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 03/18/2004
00:00:00 iget/s       namei/s   dirbk/s
01:00:00 0             3            0
02:00:00 0             3            0
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
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
       输出说明如下:
       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 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
       输出解释如下:
       device:监视的磁盘设备的名称;
       %busy:设备忙于为传送请求服务的时间份额;
       avque:设备忙于为传送请求服务期间的平均请求数;
       r+w/s:每秒对设备进行读取和写入的传送数;
       blks/s:每秒传送给设备的512字节块的数量;
       avwait:传送请求在队列中空闲等待的平均时间,以毫秒为单位;
       Avserv:设备完成传送请求所需的时间,以毫秒为单位;
       在队列不为空时测量队列长度和等待时间。当%busy很小时,如果队列和服务时间很长,则可能表示系统进行周期性的努力,以确保将警报块快速写入磁盘。
7.检查页出和内存释放情况
       使用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
02:00:00 0.01      0.01       0.01       0.00       0.00
       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 03/18/2004
00:00:04 sml_memalloc         fail   lg_memalloc      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
       输出解释如下:
       sml_mem:KMA在小型内存请求池中可用的内存量,以字节为单位;
       alloc:KMA已从其小型内存请求池向小型内存请求分配的内存量,以字节为单位;
       fail:请求少量内存并且请求失败的数量;
       lg_mem:KMA在大型内存请求池中可用的内存量,以字节为单位;
       alloc:KMA已从其大型内存请求池向小型内存请求分配的内存量,以字节为单位;
       fail:请求大量内存并且请求失败的数量;
       ovsz_alloc:为大于4K的超大型请求分配的内存量;
       fail:请求超大量内存并且请求失败的数量;
9.检查进程间通信
       使用sar –m报告进程间通信活动。
       $ sar -m
00:00:00 msg/s sema/s
01:00:00 0.00 0.00
Average 0.00 0.00
       除非使用消息或信号的应用程序,否则这些数字通常为0.
       输出解释如下:
       msg/s:每秒的消息操作数;
       sema/s:每秒的信号操作数;
10.检查页入活动
       使用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
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
       输出解释如下:
       atch/s:每秒通过回收在内存中的页来满足的页面错误数(每秒附加数)。
       pgin/s:文件系统每秒接收页入请求的次数。
ppgin/s:每秒调进的页数,单个页入请求可能涉及多个页面调入。
pflt/s:因保护错误引起的页面错误数。保护错误实例表明非法访问页面和写复制。
vflt/s:每秒的地址转换叶面错误数。
slock/s:每秒内由要求实际io操作的软件锁定请求引起的错误数。
11.检查队列活动
       使用sar –q命令报告如下信息:
       ·队列被占用时的平均队列长度;
       ·队列处理占用状态的时间百分比;
       $ sar -q
00:00:00 runq-sz %runocc
01:00:00 1.0 0
02:00:01 1.3 0
03:00:00 1.0 0
       如果%runocc较大(>90%)并且runq-sz大于2,则表明CPU负载大,并且相应慢,此时需要提供更多的CPU才能获得可接受的系统响应速度。
       输出解释如下:
       runq-sz:内存中等待CPU以便运行的内核线程数。通常不大于2,否则可能是CPU限制;
       %runocc:占用分发队列的时间百分比;
12.检查未使用的内存
       使用sar –r命令报告当前未使用的内存数和交换文件磁盘块数。
       $ sar -r
00:00:00 freemem freeswap
01:00:00 2135 401922
       输出解释如下:
       freemem:可用用户进程使用的平均内存页数;
       freeswap:用于页交换的512字节磁盘块数;
13.检查CPU使用率
       使用sar –u显示CPU使用率信息。
$ sar -u
00:00:00 %usr %sys %wio %idle
01:00:00 0 0 0 100
       %wio的值越大,表明磁盘速率越慢。
14.检查系统表状态
       使用sar –v命令报告进程表,inode表,文件表和共享内存记录表的状态。
       $ 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
       这些表都基于物理内存量进行分配。
       输出解释如下:
       proc-sz:内核中正在使用或以分配的进程项数;
       inod-sz:与内核中分配的最大inode节点相比,内存中的inode总数;
       file-sz:打开的系统文件标的大小;
       ov:在每个表的采样点之间发生的溢出;
       lock-sz:内核中当前正在使用或分配的共享内存记录表的数量。
15.检查交换活动
       使用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
       输出解释:
       swpin/s:每秒传入内存的LWP数;
       bswin/s:每秒为换入传送的块数;
       swpot/s:每秒缓存内存的平均进程数,如果该值大于1;
       bswot/s:每秒为换出传送的块数;
       pswch/s:每秒的内核线程切换数;
16.检查终端活动
       使用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
       如果有多个终端I/O可用该命令确定是否存在错误行。输出解释如下:
       rawch/s:每秒输入的字符数;
       canch/s:每秒处理的输入字符;
       outch/s:每秒输出字符数;
       rcvin/s:每秒接收器硬件中断次数;
       xmtin/s:每秒传送器硬件中断次数;
       mdmin/s:每秒调制解调器中断次数;
17.检查总体统计性能
       使用sar –A显示所有选项的统计信息,以提供总体系统性能的视图;


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/57759/showart_450170.html
页: [1]
查看完整版本: Solaris系统性能管理