监视系统活动(sar)

来源:互联网 发布:wifi监控摄像头软件 编辑:程序博客网 时间:2024/04/28 02:15
 

监视系统活动(sar)

sar选项

操作

-a

检查文件访问操作

-b

检查缓冲区活动

-c

检查系统调用

-d

检查每个块设备的活动

-g

检查页出和内存释放

-k

检查内核内存分配

-m

检查进程间通信

-nv

检查系统表状态

-p

检查交换和分发活动

-q

检查队列活动

-r

检查未使用的内存

-u

检查CPU使用率

-w

检查交换和切换卷

-y

检查终端活动

-a

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

 

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

$ sar -a

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

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

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

这些操作系统例程的报告值越大,内核访问用户文件所用的时间就越多。时间的长短

将反映程序和应用程序使用文件系统的程度。-a 选项有助于查看磁盘与应用程序的相

关情况。

 

二、使用sar -b 命令可显示缓冲区活动统计信息。缓冲区用于高速缓存元数据。元数据包括inode、柱面组块和间接块。

$ sar –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

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

device 监视的磁盘设备的名称。

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

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

r+w/s 每秒对设备进行的读取和写入传送数。

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

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

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

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

 

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

$ sar –g

pgout/s 每秒的页出请求数。

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

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

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

%ufs_ipf 具有关联的可重用页的iget 从可用列表中取消的

ufs inode 的百分比。这些页面被刷新,并且不能由进程回收。因此,此字段表示具有页面刷新的

igets 的百分比。如果该值很大,则表明inode 的可用列表页面密集,并且可能需要增加ufs inode的数量。

请注意,命令的输出可以明确指示是否需要更多内存。使用ps -elf 命令显示page 守护程序使用的周期数。如果周期数很大,并且pgfree/s 和pgscan/s 字段的值也很大,则表明内存不足。命令还可表明是否回收inode 的速率过快而引起可重用页丢失。

 

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

$ sar –k

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

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

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

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

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

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

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

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

 

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

$ sar –m

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

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

sema/s 每秒的信号操作数

 

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

$ sar –p

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

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

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

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

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

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

 

九、使用sar -q 命令可报告以下信息

$ sar –q

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

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

swpq-sz 不再由sar 命令报告。

%swpocc 不再由sar 命令报告。

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

 

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

$ sar –r

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

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

 

十一、使用sar -u 命令可显示CPU 使用率统计信息。

$ sar –u

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

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

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

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

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

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

 

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

$ sar –v

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

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

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

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

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

 

十三、使用sar -w 命令可报告交换和切换活动。

$ sar –w

swpin/s 每秒传入内存的LWP 数。

bswin/s 每秒为换入传送的块数。

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

bswot/s 每秒为换出传送的块数。

pswch/s 每秒的内核线程切换数

 

 

十四、使用sar -y 命令可监视终端设备活动。

$ sar –y

rawch/s 每秒输入字符数(原始队列)

canch/s canon(规则队列)每秒处理的输入字符

outch/s 每秒输出字符数(输出队列)

rcvin/s 每秒接收器硬件中断次数

xmtin/s 每秒传送器硬件中断次数

mdmin/s 每秒调制解调器中断次数

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

 

十五、自动收集系统活动数据(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 文件中取消对下列行的注释:

# 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 项执行以下操作:

■ 前两个crontab 项可在星期一到星期五从上午8 点到下午5 点,每20 分钟或每小

向/var/adm/sa/sadd 文件写入一条记录。

■ 第三项可从星期一到星期五每小时向/var/adm/sa/sar dd 文件写入一条记录,并且可以包括所有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/sa dd(缺省设置)。

■ -s 和-e 选项定义报告的开始时间和结束时间。开始时间和结束时间的格式为hh[:mm[:ss]],其中hh、mm和ss 表示小时、分钟和秒。

■ -i 选项指定记录所选内容之间的时间间隔(以秒为单位)。如果不包括-i 选项,则报告在每日活动文件中找到的所有间隔。

原创粉丝点击