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监控系统状态的更多相关文章

  1. 使用haproxy 2.0 prometheus metrics 监控系统状态

    haproxy 2.0 已经发布一段时间了,提供内部直接暴露的prometheus metrics 很方便 ,可以快速的监控系统的状态 以下是一个简单的demo 环境准备 docker-compose ...

  2. Linux watch 监控系统状态

    1.linux下watch命令的基本用法 # watch --helpUsage: watch [-dhntv] [--differences[=cumulative]] [--help] [--in ...

  3. linux 命令之sar——监视系统状态

    摘要:在进行系统或者内核测试的时候,我们经常需要观察cpu利用率,缓冲区使用情况,文件读写情况等等.在linux系统下,我们可以用sar命令来达到这个要求. sar 命令行的常用格式: sar [op ...

  4. 使用状态文件+vigil 监控系统状态

    vigil 是一个不错的系统可用性报告系统,具有还不错的ui 界面,同时也有通知配置,以下是一个简单的 demo 使用状态文件,以及http body 匹配的模式进行web 应用状态的监控,只是简单的 ...

  5. Linux atop 监控系统状态

    atop是一个功能非常强大的linux服务器监控工具,它的数据采集主要包括:CPU.内存.磁盘.网络.进程等,并且内容非常的详细,特别是当那一部分存在压力它会以特殊的颜色进行展示,如果颜色是红色那么说 ...

  6. linux系统常用监控系统状态信息命令

    [root@bogon ~]# uptime #平均负载 23:33:21 up 2:09, 3 users, load average: 0.02, 0.05, 0.05 [root@bogon ~ ...

  7. Linux 笔记 - 第十三章 Linux 系统日常管理之(一)系统状态监控

    博客地址:http://www.moonxy.com 一.前言 如果你是一名 Linux 运维人员,最主要的工作是优化系统配置,使应用在系统上以最优的状态运行.系统运行状态主要包括:系统负载.内存状态 ...

  8. Linux 常用命令:系统状态篇

    前言 Linux常用命令中,有些命令可以用于查看系统的状态,通过了解系统当前的状态,能够帮助我们更好地维护系统或定位问题.本文就简单介绍一下这些命令. 1. 查看系统运行时间--uptime 有时候我 ...

  9. 【第十三课】监控Linux系统状态

    目录 1.查看系统负载命令:w.uptime 2.vmstat详解 3.top动态查看负载 4.sar命令(监控网卡流量) 5.nload命令(监控网卡流量) 6.iostat iotop(监控IO性 ...

随机推荐

  1. 如何减少不能重现的Bug

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:如何减少不能重现的Bug.

  2. IOS获取物理尺寸中7Plus中获取的是7的物理尺寸

    IOS获取物理尺寸中7Plus中获取的是7的物理尺寸: 在开发调试过程中我的7Plus手机获取[uiscreen mainscreen].bounds为750  .1334. 解决方案:在手机中的显示 ...

  3. spring + springmvc + jdbc + quartz + maven整合

    个人搭建框架: pom.xml: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="htt ...

  4. maven 通过nexus创建工厂的配置

    访问中央工厂的地址:http://localhost:8081/nexus/index.html#welcome   admin.admin123 查找到自己配置的maven仓库的位置,编辑setti ...

  5. play wav sound

    播放 WAV文件             string s = @"D:\Administrator\安装文件\完美世界国际版\patcher\skin\sounds\click.wav&q ...

  6. kontalk

    Site: http://kontalk.org/ Code: https://github.com/kontalk/androidclient

  7. phpmailer使用gmail SMTP的方法

    终于能够通过phpmailer使用gmail账号发送邮件了phpmailer(现在的版本是1.73)是一个很好用的工具,可以很方便的使用php语言发送邮件,支持smtp及验证,我们一直都用它. 但是, ...

  8. android110 jni01

    ##交叉编译(编译就是编译成汇编指令,使得电脑能够识别,比如windows平台模拟linux平台编译出来得程序可以在linux上运行.) * 在一个平台下,编译出另一个平台能够执行的二进制的代码 * ...

  9. TextView使用的方式

    第一种改变TextView的方式 //      TextView tv=new TextView(this);  //      tv.setText("Hello,Android&quo ...

  10. verilog 数组参数

    verilog 支持定义数组参数,这样工程很大时,例化模块时可以使代码更简洁:详见实例 module dma_controller #( parameter integer C0_MAX_MIG_BL ...