sar工具命令参数

       在说命令之前先查看liunx环境有没有安装,查看命令 rpm -qa |grep sysstat

显示 sysstat-9.0.4-27.el6.x86_64 说明已经安装,如果没有安装用yum工具安装一下,命令:如果是 CentOS,那么用 yum install -y sysstat 安装。

        sysstat是一个工具包,包含有几个很有用的系统检测程序,iostat,mpstat和sar.
Turbolinux的各个版本上,都包含这个工具包.
iostat用于输出CPU,I/O系统和磁盘分区的统计信息.可以用来分析磁盘I/O,带宽等信息.
mpstat用于输出CPU的各种统计信息. 可以用来分析程序运行时在内核态和用户态的工作情况.
sar用于定时搜集系统的各种状态信息.然后可以对系统各个时间点的状态进行监控.

       sar工具的使用方式为”sar [选项] intervar [count]”,其中interval为统计信息采样时间,count为采样次数。

下文将说明如何使用sar获取以下性能分析数据:
整体CPU使用统计
各个CPU使用统计
内存使用情况统计
整体I/O情况
各个I/O设备情况
网络统计

整体CPU使用统计(-u)

使用-u选项,sar输出整体CPU的使用情况,不加选项时,默认使用的就是-u选项。以下命令显示采样时间为1s,采样次数为2次,整体CPU的使用情况:

[root@vm-156-223-dev03-hp ~]# sar -u 1 2
Linux 2.6.32-925.431.29.2.letv.el6.x86_64 (vm-156-223-dev03-hp.bj-cn.vpc.letv.cn)     07/23/2015    _x86_64_    (2 CPU)

11:52:26 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
11:52:27 AM     all      0.00      0.00      0.00      0.00      0.00    100.00
11:52:28 AM     all      0.00      0.00      0.00      0.00      0.00    100.00
Average:        all      0.00      0.00      0.00      0.00      0.00    100.00

以上主要的统计项的解析如下:

%user: 用户态下CPU使用时间比率

%system: 内核态下CPU使用时间比率

%iowait: CPU等待I/O占用时间比率

%idle: CPU空闲时间比率

各个CPU使用统计(-P)

“-P ALL”选项指示对每个内核输出统计信息:

[root@vm-156-223-dev03-hp ~]# sar -P ALL 1 1
Linux 2.6.32-925.431.29.2.letv.el6.x86_64 (vm-156-223-dev03-hp.bj-cn.vpc.letv.cn)     07/23/2015    _x86_64_    (2 CPU)

11:54:17 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
11:54:18 AM     all      0.00      0.00      0.00      0.00      0.50     99.50
11:54:18 AM       0      0.99      0.00      0.99      0.00      0.00     98.02
11:54:18 AM       1      0.00      0.00      0.00      0.00      0.00    100.00

Average:        CPU     %user     %nice   %system   %iowait    %steal     %idle
Average:        all      0.00      0.00      0.00      0.00      0.50     99.50
Average:          0      0.99      0.00      0.99      0.00      0.00     98.02
Average:          1      0.00      0.00      0.00      0.00      0.00    100.00

其中”CPU”列输出0,1,2,3指示对应的cpu核。也可针对单独一个内核显示,“-P 1”指示显示第二个内核的统计信息。

内存使用情况统计(-r)

使用-r选项可显示内存统计信息,以下命令显示以1秒为采样时间,显示2次内存信息:

[root@vm-156-223-dev03-hp ~]# sar -r 1 2
Linux 2.6.32-925.431.29.2.letv.el6.x86_64 (vm-156-223-dev03-hp.bj-cn.vpc.letv.cn)     07/23/2015    _x86_64_    (2 CPU)

11:55:11 AM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit
11:55:12 AM    646036   1276312     66.39    314620    703632    189432      4.71
11:55:13 AM    646036   1276312     66.39    314620    703632    189432      4.71
Average:       646036   1276312     66.39    314620    703632    189432      4.71

上面输出的内存单位为”kb”,各项的名称可自解析其含义。

整体I/O情况(-b)

使用-b选项,可以显示磁盘I/O的使用情况:

[root@vm-156-223-dev03-hp ~]# sar -b 1 2
Linux 2.6.32-925.431.29.2.letv.el6.x86_64 (vm-156-223-dev03-hp.bj-cn.vpc.letv.cn)     07/23/2015    _x86_64_    (2 CPU)

11:56:05 AM       tps      rtps      wtps   bread/s   bwrtn/s
11:56:06 AM      0.00      0.00      0.00      0.00      0.00
11:56:07 AM      0.00      0.00      0.00      0.00      0.00
Average:         0.00      0.00      0.00      0.00      0.00

以上各列的含义为:

tps: 每秒向磁盘设备请求数据的次数,包括读、写请求,为rtps与wtps的和。出于效率考虑,每一次IO下发后并不是立即处理请求,而是将请求合并(merge),这里tps指请求合并后的请求计数。

rtps: 每秒向磁盘设备的读请求次数

wtps: 每秒向磁盘设备的写请求次数

bread: 每秒从磁盘读的bytes数量

bwrtn: 每秒向磁盘写的bytes数量

各个I/O设备情况(-d)

使用-d选项可以显示各个磁盘的统计信息,再增加-p选项可以以sdX的形式显示设备名称:

[root@vm-156-223-dev03-hp ~]# sar -d -p 1 1
Linux 2.6.32-925.431.29.2.letv.el6.x86_64 (vm-156-223-dev03-hp.bj-cn.vpc.letv.cn)     07/23/2015    _x86_64_    (2 CPU)

11:57:12 AM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
11:57:13 AM       vda      1.02      0.00      8.16      8.00      0.00      3.00      3.00      0.31
11:57:13 AM       vdb      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11:57:13 AM VGSYS-lv_var      1.02      0.00      8.16      8.00      0.00      3.00      3.00      0.31
11:57:13 AM VGSYS-lv_root      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
11:57:13 AM VGSYS-lv_letv      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

Average:          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
Average:          vda      1.02      0.00      8.16      8.00      0.00      3.00      3.00      0.31
Average:          vdb      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:    VGSYS-lv_var      1.02      0.00      8.16      8.00      0.00      3.00      3.00      0.31
Average:    VGSYS-lv_root      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:    VGSYS-lv_letv      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

以上输出中DEV列以sdX的方式显示了设备名称。

网络统计(-n)

使用-n选项可以对网络使用情况进行显示,-n后接关键词”DEV”可显示eth0、eth1等网卡的信息:

[root@vm-156-223-dev03-hp ~]# sar -n DEV 1 1
Linux 2.6.32-925.431.29.2.letv.el6.x86_64 (vm-156-223-dev03-hp.bj-cn.vpc.letv.cn)     07/23/2015    _x86_64_    (2 CPU)

11:58:04 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
11:58:05 AM        lo      6.00      6.00      0.31      0.31      0.00      0.00      0.00
11:58:05 AM      eth0     49.00      6.00      4.77      0.62      0.00      0.00      0.00
11:58:05 AM      eth1      8.00      0.00      0.45      0.00      0.00      0.00      0.00

Average:        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
Average:           lo      6.00      6.00      0.31      0.31      0.00      0.00      0.00
Average:         eth0     49.00      6.00      4.77      0.62      0.00      0.00      0.00
Average:         eth1      8.00      0.00      0.45      0.00      0.00      0.00      0.00

以上主要输出含义如下:

IFACE: 网络接口名称

rxpck/s: 每秒收包的数量

txpck/s: 每秒发包的数量

rxkB/s: 每秒收的数据量(kB为单位)

txkB/s: 每秒发的数据量(kB为单位)

sar日志保存(-o)

最后讲一下如何保存sar日志,使用-o选项,我们可以把sar统计信息保存到一个指定的文件,对于保存的日志,我们可以使用-f选项读取:

[root@vm-156-223-dev03-hp ~]# sar -n DEV 1 10 -o sar.out

[root@vm-156-223-dev03-hp ~]# sar -d 1 10 -f sar.out

相比将结果重定向到一个文件,使用-o选项,可以保存更多的系统资源信息。

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

 sar 既能报告当前数据,也能报告历史数据

不带选项执行会以10分钟为间隔报告自午夜起当天的CPU利用率。

脚本sal收集了这些历史数据,它是sar软件包的一部分,必须设置为定期从cron里运行

sar把自已收集的数据以二进制格式保存在/var/log/sa里

使用 sar -d 可以得到当天磁盘活动的情况汇总

sar -n  DEV 则能给出网络接口的统计信息

sar -A 可以报告所有的信息

sar 适用于快速粗略了解历史信息。

sar 命令行的常用格式: sar [options] [-o file] t [n]

options 为命令行选项,sar命令的选项很多,下面只列出常用选项:
-A:所有报告的总和。        
-u:CPU利用率        
-v:进程、I节点、文件和锁表状态。        
-d:硬盘使用报告。        
-r:没有使用的内存页面和硬盘块。        
-g:串口I/O的情况。
-b:缓冲区使用情况。
-a:文件读写情况。
-c:系统调用情况。
-R:进程的活动情况。
-y:终端设备活动情况。
-w:系统交换活动。

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

猜你喜欢

转载自km-moon11.iteye.com/blog/2229624