标签:linux、sar
一、sar命令
1、简介
sar命令是Linux下系统运行状态统计工具,它将指定的操作系统状态计数器显示到标准输出设备。sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。它的特点是可以连续对系统取样,获得大量的取样数据。取样数据和分析的结果都可以存入文件,使用它时消耗的系统资源很小。
2、常用选项
-A 显示所有历史数据,通过读取/var/log/sar 目录下的所有文件,并把它们分门别类的显示出来;
-b 通过设备的I/O中断读取设置的吞吐率;
-B 报告内存或虚拟内存交换统计;
-c 报告每秒创建的进程数;
-d 报告物理块设备(存储设备)的写入、读取之类的信息,如果直观一点,可以和p参数共同使用,-dp
-f 从一个二进制的数据文件中读取内容,比如 sar -f filename
-i interval 指定数据收集的时间,时间单位是秒;
-n 分析网络设备状态的统计,后面可以接的参数有 DEV、EDEV、NFS、NFSD、SOCK等。比如-n DEV
-o 把统计信息写入一个文件,比如 -o filename ;
-P 报告每个处理器应用统计,用于多处理器机器,并且启用SMP内核才有效;
-p 显示友好设备名字,以方便查看,也可以和-d 和-n 参数结合使用,比如 -dp 或-np
-r 内存和交换区占用统计;
-R 显示内存状态;
-t 这个选项对从文件读取数据有用,如果没有这个参数,会以本地时间为标准 读出;
-u 报告CPU利用率的参数;
-v 报告inode, 文件或其它内核表的资源占用信息;
-w 报告系统交换活动的信息; 每少交换数据的个数;
-W 报告系统交换活动吞吐信息;
-x 用于监视进程的,在其后要指定进程的PID值;
-X 用于监视进程的,但指定的应该是一个子进程ID;
3、应用举例
3.1、每两秒一次公执行三次报告CPU利用率:
[root@hpf-linux ~]# sar -u 2 3 Linux 2.6.32-504.el6.i686 (hpf-linux) 2015年07月18日 _i686_(1 CPU) 20时18分49秒 CPU %user %nice %system %iowait %steal %idle 20时18分51秒 all 0.00 0.00 1.00 0.00 0.00 99.00 20时18分53秒 all 0.00 0.00 0.00 0.00 0.00 100.00 20时18分55秒 all 0.00 0.00 0.50 0.00 0.00 99.50 平均时间: all 0.00 0.00 0.50 0.00 0.00 99.50
说明:
CPU:表示机器内所有的CPU;
%user 表示CPU的利用率;
%nice 表示CPU在用户层优先级的百分比,0表示正常;
%system 表示当系统运行时,在用户应用层上所占用的CPU百分比;
%iowait 表示请求硬盘I/0数据流出时,所占用CPU的百分比;
%idle 表示空闲CPU百分比,值越大系统负载越低;
上例可以用重定向到一个文件并用cat、more、less命令来查看,也可以使用-o filename 来把监控的结果(二进制数据)输出到filename文件内,由于是二进制数据需要用sar -f filename才能查看。
3.2、inode、文件和其他内核表监控:
[root@hpf-linux ~]# sar -v 2 3 Linux 2.6.32-504.el6.i686 (hpf-linux) 2015年07月18日 _i686_(1 CPU) 20时33分11秒 dentunusd file-nr inode-nr pty-nr 20时33分13秒 3957 608 9586 1 20时33分15秒 3957 608 9586 1 20时33分17秒 3957 608 9586 1 平均时间: 3957 608 9586 1
说明:
dentunusd:目录高速缓存中未被使用的条目数量
file-nr:文件句柄(file handle)的使用数量
inode-nr:索引节点句柄(inode handle)的使用数量
pty-nr:使用的pty数量
3.3、内存和交换空间监控:
[root@hpf-linux ~]# sar -r 2 3 Linux 2.6.32-504.el6.i686 (hpf-linux) 2015年07月18日 _i686_(1 CPU) 20时35分36秒 kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit 20时35分38秒 884944 145548 14.12 19144 53368 455568 14.80 20时35分40秒 884944 145548 14.12 19144 53368 455568 14.80 20时35分42秒 884944 145548 14.12 19144 53368 455568 14.80 平均时间: 884944 145548 14.12 19144 53368 455568 14.80
说明:
kbmemfree:这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间.
kbmemused:这个值和free命令中的used值基本一致,所以它包括buffer和cache的空间.
%memused:这个值是kbmemused和内存总量(不包括swap)的一个百分比.
kbbuffers和kbcached:这两个值就是free命令中的buffer和cache.
kbcommit:保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM+swap).
%commit:这个值是kbcommit与内存总量(包括swap)的一个百分比.
3.4、内存分页监控:
[root@hpf-linux ~]# sar -B 2 3 Linux 2.6.32-504.el6.i686 (hpf-linux) 2015年07月18日 _i686_(1 CPU) 20时39分01秒 pgpgin/s pgpgout/s fault/s majflt/s pgfree/s pgscank/s pgscand/s pgsteal/s %vmeff 20时39分03秒 0.00 0.00 18.09 0.00 33.17 0.00 0.00 0.00 0.00 20时39分05秒 0.00 0.00 19.40 0.00 32.84 0.00 0.00 0.00 0.00 20时39分07秒 0.00 6.03 15.58 0.00 33.17 0.00 0.00 0.00 0.00 平均时间: 0.00 2.00 17.70 0.00 33.06 0.00 0.00 0.00 0.00
说明:
pgpgin/s:表示每秒从磁盘或SWAP置换到内存的字节数(KB) ;
pgpgout/s:表示每秒从内存置换到磁盘或SWAP的字节数(KB) ;
fault/s:每秒钟系统产生的缺页数,即主缺页与次缺页之和(major + minor) ;
majflt/s:每秒钟产生的主缺页数;
pgfree/s:每秒被放入空闲队列中的页个数 ;
pgscank/s:每秒被kswapd扫描的页个数 ;
pgscand/s:每秒直接被扫描的页个数 ;
pgsteal/s:每秒钟从cache中被清除来满足内存需要的页个数 ;
%vmeff:每秒清除的页(pgsteal)占总扫描页(pgscank+pgscand)的百分比;
3.5、I/O和传送速率监控:
[root@hpf-linux ~]# sar -b 2 3 Linux 2.6.32-504.el6.i686 (hpf-linux) 2015年07月18日 _i686_(1 CPU) 20时41分18秒 tps rtps wtps bread/s bwrtn/s 20时41分20秒 0.00 0.00 0.00 0.00 0.00 20时41分22秒 0.00 0.00 0.00 0.00 0.00 20时41分24秒 0.00 0.00 0.00 0.00 0.00 平均时间: 0.00 0.00 0.00 0.00 0.00
说明:
tps:每秒钟物理设备的 I/O 传输总量
rtps:每秒钟从物理设备读入的数据总量
wtps:每秒钟向物理设备写入的数据总量
bread/s:每秒钟从物理设备读入的数据量,单位为 块/s
bwrtn/s:每秒钟向物理设备写入的数据量,单位为 块/s
3.6、进程队列长度和平均负载状态监控:
[root@hpf-linux ~]# sar -q 2 3 Linux 2.6.32-504.el6.i686 (hpf-linux) 2015年07月18日 _i686_(1 CPU) 20时42分51秒 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 20时42分53秒 0 96 0.00 0.00 0.00 20时42分55秒 0 96 0.00 0.00 0.00 20时42分57秒 0 96 0.00 0.00 0.00 平均时间: 0 96 0.00 0.00 0.00
说明:
runq-sz:运行队列的长度(等待运行的进程数)
plist-sz:进程列表中进程(processes)和线程(threads)的数量
ldavg-1:最后1分钟的系统平均负载(System load average)
ldavg-5:过去5分钟的系统平均负载
ldavg-15:过去15分钟的系统平均负载
3.7、系统交换活动信息监控:
[root@hpf-linux ~]# sar -W 2 3 Linux 2.6.32-504.el6.i686 (hpf-linux) 2015年07月18日 _i686_(1 CPU) 20时44分23秒 pswpin/s pswpout/s 20时44分25秒 0.00 0.00 20时44分27秒 0.00 0.00 20时44分29秒 0.00 0.00 平均时间: 0.00 0.00
说明:
pswpin/s:每秒系统换入的交换页面(swap page)数量
pswpout/s:每秒系统换出的交换页面(swap page)数量
3.8、设备使用情况监控:
[root@hpf-linux ~]# sar -dp 1 1 Linux 2.6.32-504.el6.i686 (hpf-linux) 2015年07月18日 _i686_(1 CPU) 20时46分49秒 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 20时46分50秒 sr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 20时46分50秒 sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 20时46分50秒 vg1-testlv 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 平均时间: DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util 平均时间: sr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 平均时间: sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 平均时间: vg1-testlv 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
参数-p可以打印出sda等磁盘设备名称,如果不用参数-p,设备节点则有可能是dev8-0,dev22-0
说明:
tps:每秒从物理磁盘I/O的次数.多个逻辑请求会被合并为一个I/O磁盘请求,一次传输的大小是不确定的.
rd_sec/s:每秒读扇区的次数.
wr_sec/s:每秒写扇区的次数.
avgrq-sz:平均每次设备I/O操作的数据大小(扇区).
avgqu-sz:磁盘请求队列的平均长度.
await:从请求磁盘操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,单位是毫秒(1秒=1000毫秒).
svctm:系统处理每次请求的平均时间,不包括在请求队列中消耗的时间.
%util:I/O请求占CPU的百分比,比率越大,说明越饱和.
3.9、查看网络设备的吞吐情况:
[root@hpf-linux ~]# sar -n DEV 1 1 Linux 2.6.32-504.el6.i686 (hpf-linux) 2015年07月18日 _i686_(1 CPU) 20时29分33秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 20时29分34秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 20时29分34秒 eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 平均时间: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s 平均时间: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 平均时间: eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00
说明:
IFACE:设备名;
rxpck/s:每秒收到的包;
txpck/s:每秒发送的包;
rxKB/s:每秒钟接收的字节数;
txKB/s:每秒钟发送的字节数;
rxcmp/s:每秒收到数据切割压缩的包总数;
txcmp/s :每秒传输的数据切割压缩的包的总数;
rxmcst/s: 每秒收到的多点传送的包;
3.10、查看SOCK的情况:
[root@hpf-linux ~]# sar -n SOCK 2 3 Linux 2.6.32-504.el6.i686 (hpf-linux) 2015年07月18日 _i686_(1 CPU) 21时04分10秒 totsck tcpsck udpsck rawsck ip-frag tcp-tw 21时04分12秒 133 8 4 0 0 0 21时04分14秒 133 8 4 0 0 0 21时04分16秒 133 8 4 0 0 0 平均时间: 133 8 4 0 0 0
说明:
totsck:使用的套接字总数量
tcpsck:使用的TCP套接字数量
udpsck:使用的UDP套接字数量
rawsck:使用的raw套接字数量
ip-frag:使用的IP段数量
tcp-tw:TIME_WAIT状态的TCP套接字数量
3.11、针对网络设备汇报其失败情况:
[root@hpf-linux ~]# sar -n EDEV 1 1 Linux 2.6.32-504.el6.i686 (hpf-linux) 2015年07月18日 _i686_(1 CPU) 21时17分30秒 IFACE rxerr/s txerr/s coll/s rxdrop/s txdrop/s txcarr/s rxfram/s rxfifo/s txfifo/s 21时17分31秒 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 21时17分31秒 eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 平均时间: IFACE rxerr/s txerr/s coll/s rxdrop/s txdrop/s txcarr/s rxfram/s rxfifo/s txfifo/s 平均时间: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 平均时间: eth0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
说明:
IFACE:LAN接口网络设备的名称
rxerr/s:每秒钟接收的坏数据包
txerr/s:每秒钟发送的坏数据包
coll/s:每秒冲突数
rxdrop/s:因为缓冲充满,每秒钟丢弃的已接收数据包数
txdrop/s:因为缓冲充满,每秒钟丢弃的已发送数据包数
txcarr/s:发送数据包时,每秒载波错误数
rxfram/s:每秒接收数据包的帧对齐错误数
rxfifo/s:接收的数据包每秒FIFO过速的错误数
txfifo/s:发送的数据包每秒FIFO过速的错误数
总结:本篇关于sar命令由于实在虚拟机上做的实验,所以很多输出信息都为0。由于sar命令很强大,其能使用的参数较多,所以本篇只是从网上找到关于sar命令的博文进行综合下,同时由于其输出的信息很多所以若要完全掌握sar命令还需要一定的工作经验,关于各输出结果数据的意义及分析这就不多做介绍了。
本文出自 “粗茶淡饭” 博客,请务必保留此出处http://cuchadanfan.blog.51cto.com/9940284/1676176
标签:linux、sar
原文地址:http://cuchadanfan.blog.51cto.com/9940284/1676176