您的位置:首页 > 运维架构 > Linux

sar/sysstat:10个非常有用的监控UNIX/Linux性能的sar用例

2015-07-07 22:20 639 查看
http://www.thegeekstuff.com/2011/03/sar-examples/
使用sar可以实时监控Linux系统的多项性能指标如CPU、Memory、I/O等。
sar是sysstat包的一部分。
本文主要介绍怎样安装和配置sysstat包(包含sar),如何用sar监控以下的Linux性能统计:
1. 聚合的CPU使用率
2. 单个的CPU使用率
3. 内存使用量和可用量
4. 交换空间使用量和可用量
5. 系统整体的I/O活动
6. 单个设备的I/O活动
7. 上下文切换统计
8. 运行队列和负载数据
9. 网络统计
10. 在一个特定时间report sar的数据

1. 安装和配置sysstat

sudo apt-get install sysstat
(or)
yum install sysstat
(or)
rpm -ivh sysstat-10.0.0-1.i586.rpm

或者从源码安装http://sebastien.godard.pagesperso-orange.fr/download.html

wget http://pagesperso-orange.fr/sebastien.godard/sysstat-10.0.0.tar.bz2 tar xvfj sysstat-10.0.0.tar.bz2
cd sysstat-10.0.0
./configure --enable-install-cron

make
make install
--enable-install-cron选项自动做了一些开机自启动配置。
简单测试,统计3次CPU使用率周期为1秒:
sar 1 3

Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)

01:27:32 PM CPU %user %nice %system %iowait %steal %idle
01:27:33 PM all 0.00 0.00 0.00 0.00 0.00 100.00
01:27:34 PM all 0.25 0.00 0.25 0.00 0.00 99.50
01:27:35 PM all 0.75 0.00 0.25 0.00 0.00 99.00
Average: all 0.33 0.00 0.17 0.00 0.00 99.50

Sysstat的工具集:
sar 收集和展示所有的系统活动统计
sadc 是sar的后端工具负责进行数据收集
sa1 存储系统活动到二进制数据文件中,sa1依赖sadc。从cron运行。
sa2创建每日统计的总结。从cron运行。
sadf可以以CSV、 XML或其他格式生成sar的report。
iostat生成CPU和I/O统计
mpstat显示CPU统计
pidstat基于PID来报告统计(监控每个进程CPU、内存等开销,配合-u -r -d等参数)
nfsiostat显示NFS I/O统计
cifsiostat生成CIFS统计

本文主要关注sysstat基本功能和sar工具。

2. 10个典型的sar用例
两种方式调用sar,一种是不指定saXX数据文件,一种是-f /var/log/sa/saXX指定某一天的数据文件。
1)聚合的ALL CPU使用率
$ sar -u 1 3
给出所有CPU累加的实时的CPU使用率。“1 3”代表每1秒统计一次共3次。sar -u ALL还显示额外的指标项。-f /var/log/sa/sa10从sa10文件中统计当月第10天的数据。
05:35:54 PM CPU %user %nice %system %iowait %steal %idle

05:35:55 PM all 0.04 0.00 0.08 0.08 0.00 99.80

05:35:56 PM all 0.06 0.00 0.17 0.06 0.00 99.72

05:35:57 PM all 0.03 0.00 0.06 0.00 0.00 99.91

Average: all 0.04 0.00 0.09 0.04 0.00 99.82

2)单个CPU或core的使用率
-P ALL显示所有的cores,-P 1则只显示对应编号1的core。
$ sar -P ALL 1 1
05:40:50 PM CPU %user %nice %system %iowait %steal %idle

05:40:51 PM all 0.04 0.00 0.04 0.00 0.00 99.93

05:40:51 PM 0 0.00 0.00 0.00 0.00 0.00 100.00

05:40:51 PM 1 0.00 0.00 0.00 0.00 0.00 100.00

05:40:51 PM 2 0.00 0.00 0.00 0.00 0.00 100.00

05:40:51 PM 3 0.00 0.00 0.00 0.00 0.00 100.00

3)内存空闲和使用
$ sar -r 1 3

09:33:21 PM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit
09:33:22 PM 12703184 3621840 22.19 265404 1408460 3646872 7.43
09:33:23 PM 12703464 3621560 22.18 265404 1408460 3646872 7.43
09:33:24 PM 12703464 3621560 22.18 265404 1408460 3646872 7.43
Average: 12703371 3621653 22.18 265404 1408460 3646872 7.43

4)交换空间使用量
$ sar -S 1 3

07:31:06 AM kbswpfree kbswpused %swpused kbswpcad %swpcad
07:31:07 AM 8385920 0 0.00 0 0.00
07:31:08 AM 8385920 0 0.00 0 0.00
07:31:09 AM 8385920 0 0.00 0 0.00
Average: 8385920 0 0.00 0 0.00

注意:
使用sar -R、-H、-B、-W还可以监控内存页信息。

5. 整体的I/O活动
tps - 每秒的transactions(包括读和写)
rtps - 每秒的读transactions
wtps - 每秒的写transactions
bread/s - 每秒读字节数
bwrtn/s - 每秒写字节数
$ sar -b 1 3

09:39:13 PM tps rtps wtps bread/s bwrtn/s
09:39:14 PM 0.00 0.00 0.00 0.00 0.00
09:39:15 PM 0.00 0.00 0.00 0.00 0.00
09:39:16 PM 0.00 0.00 0.00 0.00 0.00
Average: 0.00 0.00 0.00 0.00 0.00

注意:使用sar -v显示inode handlers、file handlers、伪终端pseudo-terminals的数量

6. 单个的块设备的I/O活动
$ sar -d 1 1
09:41:08 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util

09:41:09 PM dev8-0 17.00 0.00 144.00 8.47 0.37 21.53 1.76 3.00

Average: DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util

Average: dev8-0 17.00 0.00 144.00 8.47 0.37 21.53 1.76 3.00
”DEV“指代了特定块设备,比如dev53-1意思是主设备号为53,辅设备号为1。
DEV还可以显示成真正的设备名如sda,使用-p参数即可。
$ sar -p -d 1 1
09:43:39 PM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util

09:43:40 PM sda 5.05 0.00 40.40 8.00 0.07 13.20 4.20 2.12

Average: DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util

Average: sda 5.05 0.00 40.40 8.00 0.07 13.20 4.20 2.12

7. 显示没秒上下文切换
该项报告了每秒进程创建总数和上下文切换总数。
$ sar -w 1 3
09:44:57 PM proc/s cswch/s

09:44:58 PM 0.00 2778.00

09:44:59 PM 0.00 2776.00

09:45:00 PM 0.00 2668.32

Average: 0.00 2740.53

8. 报告运行队列和平均负载
运行队列大小和1分钟、5分钟、15分钟平均负载。
$ sar -q 1 3
09:46:09 PM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15

09:46:10 PM 0 734 0.10 0.12 0.08

09:46:11 PM 0 732 0.10 0.12 0.08

09:46:12 PM 1 732 0.10 0.12 0.08

Average: 0 733 0.10 0.12 0.08

9. 报告网络统计
多种网络信息统计,比如接收到的包数量、失败包数量等等。
$ sar -n KEYWORD
KEYWORD可以是:
DEV - 网络设备eth0、eth1等的关键统计信息
EDEV - 网络设备failure统计
NFS - NFS客户端活动
NFSD - NFS服务器活动
SOCK - 使用IPv4的sockets
IP - IPv4网络流量
EIP - IPv4网络错误
ICMP - ICMPv4网络流量
EICMP - ICMPv4网络错误
TCP - TCPv4网络流量
ETCP - TCPv4网络错误
UDP - UDPv4网络流量
SOCK6, IP6, EIP6, ICMP6, UDP6,
ALL - 显示所有的信息
$ sar -n DEV 1 1
09:51:14 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s

09:51:15 PM lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00

09:51:15 PM eth0 4.00 0.00 0.27 0.00 0.00 0.00 0.00

09:51:15 PM eth1 2.00 0.00 0.12 0.00 0.00 0.00 0.00

09:51:15 PM virbr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00

09:51:15 PM virbr0-nic 0.00 0.00 0.00 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 0.00 0.00 0.00 0.00 0.00 0.00 0.00

Average: eth0 4.00 0.00 0.27 0.00 0.00 0.00 0.00

Average: eth1 2.00 0.00 0.12 0.00 0.00 0.00 0.00

Average: virbr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00

Average: virbr0-nic 0.00 0.00 0.00 0.00 0.00 0.00 0.00

10. 使用Start Time报告sar数据
当你从/var/log/sa/saXX文件查看历史的sar数据时,使用sar -f 选项,它会显示该文件所属当天12:00 a.m开始的sar数据。
使用”-s hh:mi:ss“选项,指定一个起始时间。
$ sar -q -f /var/log/sa/sa07 -s 10:00:01
-q选项是显示负载统计。
10:00:01 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15

10:10:02 AM 0 737 0.03 0.02 0.00

10:20:01 AM 0 738 0.02 0.02 0.00

10:30:01 AM 0 737 0.08 0.05 0.01

10:40:01 AM 0 739 0.05 0.12 0.08

10:50:01 AM 0 740 0.21 0.09 0.07

11:00:01 AM 0 740 0.00 0.02 0.03

11:10:01 AM 0 741 0.00 0.01 0.00

11:20:01 AM 0 742 0.03 0.03 0.00
只想看前面7条的话再添加管道命令 | head -n 10 (注意,前面3行不是统计数据而是表头)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: