Chinaunix首页 | 论坛 | 博客
  • 博客访问: 450214
  • 博文数量: 112
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1085
  • 用 户 组: 普通用户
  • 注册时间: 2013-01-15 09:42
个人简介

上善若水,不浮不沉!

文章存档

2021年(2)

2020年(3)

2018年(2)

2017年(1)

2016年(8)

2015年(11)

2014年(57)

2013年(28)

我的朋友

分类: LINUX

2014-07-08 09:21:06

使用sar进行性能分析

sar可用于监控Linux系统性能,帮助我们分析性能瓶颈。sar工具的使用方式为”sar [选项] intervar [count]”,其中interval为统计信息采样时间,count为采样次数。


下文将说明如何使用sar获取以下性能分析数据:

  1. 整体CPU使用统计
  2. 各个CPU使用统计
  3. 内存使用情况统计
  4. 整体I/O情况
  5. 各个I/O设备情况
  6. 网络统计


整体CPU使用统计(-u)

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

复制代码
linux:/ # sar -u 1 2 Linux 2.6.16.60-0.21-smp (linux) 06/08/12 11:37:07 CPU     %user     %nice   %system   %iowait    %steal     %idle 11:37:08 all 0.00 0.00 0.25 0.00 0.00 99.75 11:37:09 all 0.00 0.00 0.25 0.00 0.00 99.75 Average:        all 0.00 0.00 0.25 0.00 0.00 99.75
复制代码

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

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

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

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

%idle: CPU空闲时间比率


各个CPU使用统计(-P)

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

复制代码
linux:~ # sar -P ALL 1 1 Linux 2.6.16.60-0.21-smp (linux) 06/08/12 14:04:37 CPU     %user     %nice   %system   %iowait    %steal     %idle 14:04:38 all 0.50 0.00 0.12 0.00 0.00 99.38 14:04:38 0 0.00 0.00 0.00 0.00 0.00 100.00 14:04:38 1 0.00 0.00 0.00 0.00 0.00 100.00 14:04:38 2 0.00 0.00 0.00 0.00 0.00 100.00 14:04:38 3 0.00 0.00 1.00 0.00 0.00 99.00
复制代码

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


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

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

复制代码
linux:~ # sar -r  1 2 Linux 2.6.16.60-0.21-smp (linux) 06/08/12 14:22:50 kbmemfree kbmemused  %memused kbbuffers  kbcached kbswpfree kbswpused  %swpused  kbswpcad 14:22:51 11727480 4564652 28.02 174460 3995108 8393920 0 0.00 0 14:22:52 11727480 4564652 28.02 174460 3995108 8393920 0 0.00 0 Average: 11727480 4564652 28.02 174460 3995108 8393920 0 0.00 0
复制代码

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


整体I/O情况(-b)

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

复制代码
linux:~ # sar -b 1 2 Linux 2.6.16.60-0.21-smp (linux) 06/08/12 14:50:33 tps      rtps      wtps   bread/s   bwrtn/s 14:50:34 0.99 0.00 0.99 0.00 7.92 14:50:35 4.00 0.00 4.00 0.00 136.00 Average: 2.49 0.00 2.49 0.00 71.64
复制代码

以上各列的含义为:

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

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

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

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

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


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

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

复制代码
linux:~ # sar -d -p 1 1 Linux 2.6.16.60-0.21-smp (linux) 06/08/12 15:43:34 DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util 15:43:35 sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 15:43:35 sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 15:43:35 sdc 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
复制代码

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


网络统计(-n)

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

复制代码
linux:~ # sar -n DEV 1 1 Linux 2.6.16.60-0.21-smp (linux) 06/08/12 15:50:22 IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s 15:50:23 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 15:50:23 eth0 23.76 1.98 1.59 0.26 0.00 0.00 0.00 15:50:23 eth1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 15:50:23 eth2 7.92 0.00 0.60 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选项读取:

linux:~ # sar -n DEV 1 10 -o sar.out linux:~ # sar -d 1 10 -f sar.out

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


Reference: 


阅读(785) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~