sar监控系统状态

sar 命令很强大,它可以监控系统所有资源状态,比如平均负载、网卡流量、磁盘状态、内存使用等等。

它不同于其他系统状态监控工具的地方在于,它可以打印历史信息,可以显示当天从零点开始到当前时刻的系统状态信息。

系统没有安装这个命令,请使用 yum install  -y sysstat 命令安装。

 

查看CPU使用情况 

sar 2 5
//每隔2秒,显示一次一共显示5次,CPU使用的情况

  %usr:CPU处在用户模式下的时间百分比。 
  %sys:CPU处在系统模式下的时间百分比。 
  %wio:CPU等待输入输出完成时间的百分比。 
  %idle:CPU空闲时间百分比。 

在所有的显示中,我们应主要注意%wio和%idle,%wio的值过高,表示硬盘存在I/O瓶颈, 
%idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存, 
此时应加大内存容量。%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表 
明系统中最需要解决的资源是CPU。 

    sar 1 10 > data.txt
//每隔1秒,写入10次,把CPU使用数据保存到data.txt文件中。
sar 1 0 -e 15:00:00 > data.txt
//每隔1秒记录CPU的使用情况,直到15点,数据将保存到data.txt文件中。(-e 参数表示结束时间,注意时间格式:必须为hh:mm:ss格式)
sar 1 0 -r -e 15:00:00 > data.txt
//每隔1秒记录内存使用情况,直到15点,数据将保存到data.txt文件中。
sar 1 0 -n DEV -e 15:00:00 > data.txt
//每隔1秒记录网络使用情况,直到15点,数据将保存到data.txt文件中。

 

    例二:使用命行sar -v t n 

例如,每30秒采样一次,连续采样5次,观察核心表的状态,需键入如下命令: 

# sar -v 30 5 

屏幕显示: 
      SCO_SV scosysv 3.2v5.0.5 i80386 10/01/2001 
      10:33:23 proc-sz ov inod-sz ov file-sz ov lock-sz   (-v) 
10:33:53 305/ 321  0 1337/2764  0 1561/1706 0 40/ 128 
10:34:23 308/ 321  0 1340/2764  0 1587/1706 0 37/ 128 
10:34:53 305/ 321  0 1332/2764  0 1565/1706 0 36/ 128 
10:35:23 308/ 321  0 1338/2764  0 1592/1706 0 37/ 128 
10:35:53 308/ 321  0 1335/2764  0 1591/1706 0 37/ 128 

显示内容包括: 

proc-sz:目前核心中正在使用或分配的进程表的表项数,由核心参数MAX-PROC控制。 

  inod-sz:目前核心中正在使用或分配的i节点表的表项数,由核心参数 
MAX-INODE控制。 

  file-sz: 目前核心中正在使用或分配的文件表的表项数,由核心参数MAX-FILE控 
制。 

  ov:溢出出现的次数。 

  Lock-sz:目前核心中正在使用或分配的记录加锁的表项数,由核心参数MAX-FLCKRE 
控制。 

显示格式为 

实际使用表项/可以使用的表项数 

显示内容表示,核心使用完全正常,三个表没有出现溢出现象,核心参数不需调整,如 
果出现溢出时,要调整相应的核心参数,将对应的表项数加大。 

例三:使用命行sar -d t n 

例如,每30秒采样一次,连续采样5次,报告设备使用情况,需键入如下命令: 

# sar -d 30 5 

屏幕显示: 

      SCO_SV scosysv 3.2v5.0.5 i80386 10/01/2001 
11:06:43 device %busy   avque   r+w/s  blks/s  avwait avserv (-d) 
11:07:13 wd-0   1.47   2.75   4.67   14.73   5.50 3.14 
11:07:43 wd-0   0.43   18.77   3.07   8.66   25.11 1.41 
11:08:13 wd-0   0.77   2.78   2.77   7.26   4.94 2.77 
11:08:43 wd-0   1.10   11.18   4.10   11.26   27.32 2.68 
11:09:13 wd-0   1.97   21.78   5.86   34.06   69.66 3.35 
Average wd-0   1.15   12.11   4.09   15.19   31.12 2.80 

显示内容包括: 

device: sar命令正在监视的块设备的名字。 
  %busy: 设备忙时,传送请求所占时间的百分比。 
  avque: 队列站满时,未完成请求数量的平均值。 
  r+w/s: 每秒传送到设备或从设备传出的数据量。 
  blks/s: 每秒传送的块数,每块512字节。 
  avwait: 队列占满时传送请求等待队列空闲的平均时间。 
  avserv: 完成传送请求所需平均时间(毫秒)。 

在显示的内容中,wd-0是硬盘的名字,%busy的值比较小,说明用于处理传送请求的有 
效时间太少,文件系统效率不高,一般来讲,%busy值高些,avque值低些,文件系统 
的效率比较高,如果%busy和avque值相对比较高,说明硬盘传输速度太慢,需调整。 

例四:使用命行sar -b t n 

例如,每30秒采样一次,连续采样5次,报告缓冲区的使用情况,需键入如下命令: 

# sar -b 30 5 

屏幕显示: 

  SCO_SV scosysv 3.2v5.0.5 i80386 10/01/2001 
14:54:59 bread/s lread/s %rcache bwrit/s lwrit/s %wcache pread/s pwrit/s (-b) 
14:55:29 0  147  100  5  21  78   0   0 
14:55:59 0  186  100  5  25  79   0   0 
14:56:29 4  232   98  8  58  86   0   0 
14:56:59 0  125  100  5  23  76   0   0 
14:57:29 0   89  100  4  12  66   0   0 
Average  1  156   99  5  28  80   0   0 

显示内容包括: 

bread/s: 每秒从硬盘读入系统缓冲区buffer的物理块数。 
lread/s: 平均每秒从系统buffer读出的逻辑块数。 
%rcache: 在buffer cache中进行逻辑读的百分比。 
bwrit/s: 平均每秒从系统buffer向磁盘所写的物理块数。 
lwrit/s: 平均每秒写到系统buffer逻辑块数。 
%wcache: 在buffer cache中进行逻辑读的百分比。 
pread/s: 平均每秒请求物理读的次数。 
pwrit/s: 平均每秒请求物理写的次数。 

在显示的内容中,最重要的是%cache和%wcache两列,它们的值体现着buffer的使用效 
率,%rcache的值小于90或者%wcache的值低于65,应适当增加系统buffer的数量,buffer 
数量由核心参数NBUF控制,使%rcache达到90左右,%wcache达到80左右。但buffer参数 
值的多少影响I/O效率,增加buffer,应在较大内存的情况下,否则系统效率反而得不到 
提高。 

例五:使用命行sar -g t n 

例如,每30秒采样一次,连续采样5次,报告串口I/O的操作情况,需键入如下命令: 

# sar -g 30 5 

屏幕显示: 

SCO_SV scosysv 3.2v5.0.5 i80386  11/22/2001 
17:07:03  ovsiohw/s  ovsiodma/s  ovclist/s (-g) 
17:07:33   0.00   0.00   0.00 
17:08:03   0.00   0.00   0.00 
17:08:33   0.00   0.00   0.00 
17:09:03   0.00   0.00   0.00 
17:09:33   0.00   0.00   0.00 
Average    0.00   0.00   0.00 

显示内容包括: 

ovsiohw/s:每秒在串口I/O硬件出现的溢出。 

ovsiodma/s:每秒在串口I/O的直接输入输出通道高速缓存出现的溢出。 

ovclist/s :每秒字符队列出现的溢出。 

在显示的内容中,每一列的值都是零,表明在采样时间内,系统中没有发生串口I/O溢 
出现象。 

 --------------------------

初次使用sar命令会报错,那是因为sar工具还没有生成相应的数据库文件(时时监控就不会了,因为不用去查询那个库文件)。它的数据库文件在 “/var/log/sa/” 目录下,默认保存一个月。

1)查看网卡流量 sar   -n  DEV

[root@localhost ~]# sar -n DEV

Linux 2.6.32-358.el6.i686 (localhost.localdomain)       2013年05月25日  _i686_ (1 CPU)



00时00分01秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s

00时10分01秒        lo      0.00      0.00      0.00      0.00      0.00   0.00      0.00

00时10分01秒      eth0     31.94      0.09      3.89      0.02      0.00   0.00      0.00

00时20分01秒        lo      0.00      0.00      0.00      0.00      0.00   0.00      0.00

00时20分01秒      eth0     32.40      0.04      3.96      0.01      0.00   0.00      0.00

00时30分01秒        lo      0.00      0.00      0.00      0.00      0.00   0.00      0.00

00时30分01秒      eth0     31.18      0.06      3.76      0.02      0.00   0.00      0.00

。 IFACE这列表示设备名称,rxpck/s 表示每秒进入收取的包的数量,txpck/s 表示每秒发送出去的包的数量,rxbyt/s 表示每秒收取的数据量(单位Byte),txbyt/s表示每秒发送的数据量。后面几列不需要关注。如果有一天您所管理的服务器丢包非常严重,那么您就应该看一看这个网卡流量是否异常了,如果rxpck/s 那一列的数值大于4000,或者rxbyt/s那列大于5,000,000则很有可能是被攻击了,正常的服务器网卡流量不会高于这么多,除非是您自己在拷贝数据。上面的命令是查看网卡流量历史的,如何时时查看网卡流量呢?

[root@localhost ~]# sar -n DEV 1 5

Linux 2.6.32-358.el6.i686 (localhost.localdomain)       2013年05月25日  _i686_ (1 CPU)



16时46分55秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s    txcmp/s  rxmcst/s

16时46分56秒        lo      0.00      0.00      0.00      0.00      0.00    0.00      0.00

16时46分56秒      eth0     36.36      0.00      4.16      0.00      0.00    0.00      0.00



16时46分56秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s    txcmp/s  rxmcst/s

16时46分57秒        lo      0.00      0.00      0.00      0.00      0.00    0.00      0.00

16时46分57秒      eth0     69.39      1.02     10.66      0.39      0.00    0.00      0.00



16时46分57秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s    txcmp/s  rxmcst/s

16时46分58秒        lo      0.00      0.00      0.00      0.00      0.00    0.00      0.00

16时46分58秒      eth0     42.00      1.00      7.56      0.38      0.00    0.00      0.00



16时46分58秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s    txcmp/s  rxmcst/s

16时46分59秒        lo      0.00      0.00      0.00      0.00      0.00    0.00      0.00

16时46分59秒      eth0     51.52      1.01      7.73      0.39      0.00    0.00      0.00



16时46分59秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s    txcmp/s  rxmcst/s

16时47分00秒        lo      0.00      0.00      0.00      0.00      0.00    0.00      0.00

16时47分00秒      eth0     60.00      1.00      5.51      0.38      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     51.81      0.81      7.11      0.31      0.00    0.00      0.00

另外也可以查看某一天的网卡流量历史,使用-f选项,后面跟文件名,如果您的系统格式Redhat或者CentOS那么sar的库文件一定是在/var/log/sa/目录下的。:

[root@localhost ~]# sar -n DEV -f /var/log/sa/sa24

Linux 2.6.32-358.el6.i686 (localhost.localdomain)       2013年05月24日  _i686_ (1 CPU)



10时49分36秒       LINUX RESTART



10时50分01秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s

11时00分01秒        lo      0.00      0.00      0.00      0.00      0.00   0.00      0.00

11时00分01秒      eth0     58.96      0.02      7.87      0.01      0.00   0.00      0.00

11时10分01秒        lo      0.00      0.00      0.00      0.00      0.00   0.00      0.00

11时10分01秒      eth0     61.36      0.34      8.29      0.05      0.00   0.00      0.00

11时20分01秒        lo      0.00      0.00      0.00      0.00      0.00   0.00      0.00

11时20分01秒      eth0     57.17      0.22      7.65      0.03      0.00   0.00      0.00

11时30分01秒        lo      0.00      0.00      0.00      0.00      0.00   0.00      0.00

11时30分01秒      eth0     54.99      0.05      7.03      0.01      0.00   0.00      0.00

11时40分01秒        lo      0.00      0.00      0.00      0.00      0.00   0.00      0.00

2)查看历史负载 sar -q

[root@localhost ~]# sar -q

Linux 2.6.32-358.el6.i686 (localhost.localdomain)       2013年05月25日  _i686_ (1 CPU)



00时00分01秒   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15

00时10分01秒         0       142      0.00      0.00      0.00

00时20分01秒         0       143      0.00      0.00      0.00

00时30分01秒         0       143      0.00      0.01      0.00

00时40分01秒         0       143      0.05      0.01      0.00

00时50分01秒         0       143      0.00      0.00      0.00

01时00分01秒         0       143      0.00      0.00      0.00

01时10分01秒         0       143      0.08      0.03      0.00

这个命令有助于我们查看服务器在过去的某个时间的负载状况。介绍这个命令的目的只是让您学会查看网卡流量(这是非常有用的)。如果您很感兴趣那就man一下吧,它的用法太多了。

你可能感兴趣的:(sar)