使用sar可以收集系统运行时的性能数据,保存后做一些历史数据的分析,找到系统瓶颈。
sar命令属于sysstat包。
本文介绍如何安装、配置sysstat包(包含sar命令工具)和监控以下系统性能。
1.所有CPU使用情况
2.单个CPU性能数据
3.内存使用情况
4.交换空间(swap space)使用情况
5.IO情况
6.单个设备的I/O活动情况
7.上下文切换数据
8.运行队列和平均负载数据
9.网络数据
10.展示特定时间的sar数据
安装配置部分省略,大部分系统自带sysstat包,也可以看原文链接http://www.thegeekstuff.com/2011/03/sar-examples/
有两种方式调用sar命令
1.sar后面跟参数,如sar -u
2.sar后面跟参数和用-f选项指定一个saXX数据文件,xx代表本月某一天的日期,如sar -u -f /var/log/sa/saXX
从上面可以参数,sar其实用读一个保存了系统性能数据的文件,格式化好后展示出来,没有-f读取当天的文件,可以使用 ls /var/log/sa看下具体文件。
[oracle@hgora11g ~]$ ls /var/log/sa
sa01 sa05 sa10 sa14 sa18 sa22 sa26 sa30 sar03 sar08 sar12 sar16 sar20 sar24 sar28
sa02 sa06 sa11 sa15 sa19 sa23 sa27 sa31 sar04 sar09 sar13 sar17 sar21 sar25 sar29
sa03 sa07 sa12 sa16 sa20 sa24 sa28 sar01 sar05 sar10 sar14 sar18 sar22 sar26 sar30
sa04 sa09 sa13 sa17 sa21 sa25 sa29 sar02 sar06 sar11 sar15 sar19 sar23 sar27 sar31
不同参数的输出都有着相同的第一行
[oracle@hgora11g ~]$ sar -u
Linux 2.6.32-431.el6.x86_64 (hgora11g) 06/07/2017 _x86_64_ (8 CPU)
12:00:01 AM CPU %user %nice %system %iowait %steal %idle
12:10:01 AM all 0.58 0.00 0.17 0.02 0.00 99.24
12:20:01 AM all 0.36 0.00 0.14 0.01 0.00 99.48
12:30:01 AM all 0.43 0.00 0.16 0.01 0.00 99.39
12:40:01 AM all 0.38 0.00 0.16 0.01 0.00 99.45
12:50:01 AM all 0.38 0.00 0.15 0.01 0.00 99.46
01:00:01 AM all 0.47 0.00 0.16 0.01 0.00 99.36
......
10:50:01 AM all 0.40 0.00 0.21 0.01 0.00 99.38
Average: all 0.42 0.00 0.16 0.01 0.00 99.40
Linux 2.6.32-431.el6 – Linux内核版本.
(hgora11g) – 主机名.
06/07/2017 – 数据统计日期.
x86_64 – 系统架构
(8 CPU) – 可以cpu个数,多核心的cpu指的是核心数
10个例子
1.所有CPU使用情况
每一秒进行1次采样,共3次
[oracle@hgora11g ~]$ sar -u 1 3
Linux 2.6.32-431.el6.x86_64 (hgora11g) 06/07/2017 _x86_64_ (8 CPU)
10:58:17 AM CPU %user %nice %system %iowait %steal %idle
10:58:18 AM all 1.50 0.00 0.38 0.00 0.00 98.12
10:58:19 AM all 0.75 0.00 0.38 0.00 0.00 98.87
10:58:20 AM all 0.13 0.00 0.13 0.00 0.00 99.75
Average: all 0.79 0.00 0.29 0.00 0.00 98.91
一些其他用法:
sar -u 统计截止到当前时间的当天的数据.
sar -u 1 3 每一秒进行1次采样,共3次.
sar -u ALL 和 “sar -u” 一样,但是会多一点信息.
sar -u ALL 1 3 每一秒进行1次采样,共3次,但是会多一点信息.
sar -u -f /var/log/sa/sa10 展示文件sa10里的数据.
2.单个CPU性能数据
-P ALL 展示所有cpu数据
[oracle@hgora11g ~]$ sar -P ALL 1 1
Linux 2.6.32-431.el6.x86_64 (hgora11g) 06/07/2017 _x86_64_ (8 CPU)
11:09:25 AM CPU %user %nice %system %iowait %steal %idle
11:09:26 AM all 0.25 0.00 0.13 0.00 0.00 99.62
11:09:26 AM 0 0.00 0.00 0.00 0.00 0.00 100.00
11:09:26 AM 1 0.00 0.00 0.00 0.00 0.00 100.00
11:09:26 AM 2 0.99 0.00 0.00 0.00 0.00 99.01
11:09:26 AM 3 1.02 0.00 0.00 0.00 0.00 98.98
11:09:26 AM 4 0.00 0.00 0.00 0.00 0.00 100.00
11:09:26 AM 5 0.00 0.00 0.00 0.00 0.00 100.00
11:09:26 AM 6 0.00 0.00 0.00 0.00 0.00 100.00
11:09:26 AM 7 0.00 0.00 0.00 0.00 0.00 100.00
-P 1展示第2个cpu的数据
[oracle@hgora11g ~]$ sar -P 1 1 1
Linux 2.6.32-431.el6.x86_64 (hgora11g) 06/07/2017 _x86_64_ (8 CPU)
11:12:19 AM CPU %user %nice %system %iowait %steal %idle
11:12:20 AM 1 0.00 0.00 0.00 0.00 0.00 100.00
Average:
一些其他用法:
sar -P ALL 所有cpu当天的数据.
sar -P ALL 1 3 所有cpu,3次间隔1s的数据.
sar -P 1 取1号cpu当天数据.
sar -P 1 1 3 取1号cpu,3次间隔1s的数据.
sar -P ALL -f /var/log/sa/sa10 展示sa10文件里面所有cpu数据.
3.内存使用情况
3次间隔1s的数据,关注kbmemfree和kbmemused指标,表示可用和已使用内存空间。
[oracle@hgora11g ~]$ sar -r 1 3
Linux 2.6.32-431.el6.x86_64 (hgora11g) 06/07/2017 _x86_64_ (8 CPU)
11:16:21 AM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit
11:16:22 AM 321988 16013780 98.03 292272 12841692 9041468 36.79
11:16:23 AM 317220 16018548 98.06 292272 12841692 9048220 36.82
11:16:24 AM 315524 16020244 98.07 292272 12841692 9056340 36.85
Average: 318244 16017524 98.05 292272 12841692 9048676 36.82
一些其他用法:
sar -r
sar -r 1 3
sar -r -f /var/log/sa/sa10
4.交换空间(swap space)使用情况
[oracle@hgora11g ~]$ sar -S 1 3
Linux 2.6.32-431.el6.x86_64 (hgora11g) 06/07/2017 _x86_64_ (8 CPU)
11:19:02 AM kbswpfree kbswpused %swpused kbswpcad %swpcad
11:19:03 AM 7764928 476216 5.78 27884 5.86
11:19:04 AM 7764928 476216 5.78 27884 5.86
11:19:05 AM 7764928 476216 5.78 27884 5.86
Average: 7764928 476216 5.78 27884 5.86
一些其他用法:
sar -S
sar -S 1 3
sar -S -f /var/log/sa/sa10
注意:
Use “sar -R” to identify number of memory pages freed, used, and cached per second by the system.
Use “sar -H” to identify the hugepages (in KB) that are used and available.
Use “sar -B” to generate paging statistics. i.e Number of KB paged in (and out) from disk per second.
Use “sar -W” to generate page swap statistics. i.e Page swap in (and out) per second.
5.IO情况
[oracle@hgora11g ~]$ sar -b 1 3
Linux 2.6.32-431.el6.x86_64 (hgora11g) 06/07/2017 _x86_64_ (8 CPU)
11:21:37 AM tps rtps wtps bread/s bwrtn/s
11:21:38 AM 6.00 0.00 6.00 0.00 64.00
11:21:39 AM 10.10 0.00 10.10 0.00 129.29
11:21:40 AM 0.00 0.00 0.00 0.00 0.00
Average: 5.35 0.00 5.35 0.00 64.21
指标解释:
tps – Transactions per second (this includes both read and write),事务数/秒
rtps – Read transactions per second,读事务/秒
wtps – Write transactions per second,写事务/秒
bread/s – Bytes read per second,读数据量Bytes/秒
bwrtn/s – Bytes written per second,写数据量Bytes/秒
一些其他用法:
sar -b
sar -b 1 3
sar -b -f /var/log/sa/sa10
注意: Use “sar -v” to display number of inode handlers, file handlers, and pseudo-terminals used by the system.
6.单个设备的I/O活动情况
[oracle@hgora11g ~]$ sar -d 1 1
Linux 2.6.32-431.el6.x86_64 (hgora11g) 06/07/2017 _x86_64_ (8 CPU)
11:54:35 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
11:54:36 AM dev11-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:54:36 AM dev8-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:54:36 AM dev253-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:54:36 AM dev253-1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:54:36 AM dev253-2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:54:36 AM dev8-16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:54:36 AM dev8-32 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:54:36 AM dev253-3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
In the above example “DEV” indicates the specific block device.
For example: “dev53-1” means a block device with 53 as major number, and 1 as minor number.
The device name (DEV column) can display the actual device name (for example: sda, sda1, sdb1 etc.,),
if you use the -p option (pretty print) as shown below.
[oracle@hgora11g ~]$ sar -p -d 1 1
Linux 2.6.32-431.el6.x86_64 (hgora11g) 06/07/2017 _x86_64_ (8 CPU)
11:54:39 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
11:54:40 AM sr0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:54:40 AM sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:54:40 AM v-lv_root 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:54:40 AM v-lv_swap 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:54:40 AM v-lv_home 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:54:40 AM sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:54:40 AM sdc 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
11:54:40 AM v-lv_data 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
一些其他用法:
sar -d
sar -d 1 3
sar -d -f /var/log/sa/sa10
sar -p -d
7.上下文切换数据
proc/s(进程创建/秒),cswch/s(上下文切换/秒)
[oracle@hgora11g ~]$ sar -w 1 3
Linux 2.6.32-431.el6.x86_64 (hgora11g) 06/07/2017 _x86_64_ (8 CPU)
11:58:05 AM proc/s cswch/s
11:58:06 AM 0.00 2108.08
11:58:07 AM 13.86 2250.50
11:58:08 AM 0.00 2073.00
Average: 4.67 2144.33
一些其他用法:
sar -w
sar -w 1 3
sar -w -f /var/log/sa/sa10
8.运行队列和平均负载数据
3次间隔1s的数据,展示运行队列的大小和过去1分钟、5分钟、15分钟的平均负载
[oracle@hgora11g ~]$ sar -q 1 3
Linux 2.6.32-431.el6.x86_64 (hgora11g) 06/07/2017 _x86_64_ (8 CPU)
01:40:39 PM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15
01:40:40 PM 0 550 0.00 0.00 0.00
01:40:41 PM 0 550 0.00 0.00 0.00
01:40:42 PM 0 550 0.00 0.00 0.00
Average: 0 550 0.00 0.00 0.00
注意: The “blocked” column displays the number of tasks that are currently blocked and waiting for I/O operation to complete.
一些其他用法:
sar -q
sar -q 1 3
sar -q -f /var/log/sa/sa10
9.网络数据
This reports various network statistics.
For example: number of packets received (transmitted) through the network card, statistics of packet failure etc.,.
“1 3” reports for every 1 seconds a total of 3 times.
[oracle@hgora11g ~]$ sar -n DEV 1 1
Linux 2.6.32-431.el6.x86_64 (hgora11g) 06/07/2017 _x86_64_ (8 CPU)
01:44:54 PM IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s
01:44:55 PM lo 6.00 6.00 3.12 3.12 0.00 0.00 0.00
01:44:55 PM eth0 6.00 5.00 0.41 0.35 0.00 0.00 0.00
sar -n KEYWORD
KEYWORD can be one of the following:
DEV – Displays network devices vital statistics for eth0, eth1, etc.,
EDEV – Display network device failure statistics
NFS – Displays NFS client activities
NFSD – Displays NFS server activities
SOCK – Displays sockets in use for IPv4
IP – Displays IPv4 network traffic
EIP – Displays IPv4 network errors
ICMP – Displays ICMPv4 network traffic
EICMP – Displays ICMPv4 network errors
TCP – Displays TCPv4 network traffic
ETCP – Displays TCPv4 network errors
UDP – Displays UDPv4 network traffic
SOCK6, IP6, EIP6, ICMP6, UDP6 are for IPv6
ALL – This displays all of the above information. The output will be very long.
10.展示特定时间开始的sar数据
展示从10点开始的数据,没有选项限制截止时间,可以使用以下方法 sar -q -f /var/log/sa/sa23 -s 10:00:01 | head -n 10
[oracle@hgora11g ~]$ sar -q -f /var/log/sa/sa23 -s 10:00:01
Linux 2.6.32-431.el6.x86_64 (hgora11g) 05/23/2017 _x86_64_ (8 CPU)
10:00:01 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15
10:10:01 AM 0 752 0.13 0.03 0.01
10:20:01 AM 0 792 0.02 0.02 0.00
10:30:01 AM 0 793 0.00 0.00 0.00
......
11:30:01 PM 0 448 0.00 0.00 0.00
11:40:02 PM 0 448 0.03 0.03 0.00
11:50:01 PM 0 448 0.03 0.02 0.00
Average: 0 543 0.03 0.02 0.01
原文链接 http://www.thegeekstuff.com/2011/03/sar-examples/