sar(System Activity Reporter系统活动情况报告)
安装Sysstat
sudo apt-get install sysstat
(or)
yum install sysstat
(or)
rpm -ivh sysstat-10.0.0-1.i586.rpm
sar -V: 查看安装是否成功
默认配置文件: `/etc/default/sysstat`
存放数据文件夹: `/var/log/sysstat`
配置cron任务: `/etc/cron.d/sysstat`
# 系统Linux内核版本 (主机名) 数据被收集的日期 系统架构 (可用CPU数量,多核系统中,指核数)
Linux 3.13.0-52-generic (user-3010) 2016年01月28日 _x86_64_ (4 CPU)
所有CPU使用情况(sar -u)
╭─user@user-3010 ~
╰─$ sar -u 1 3
Linux 3.13.0-52-generic (user-3010) 2016年01月28日 _x86_64_ (4 CPU)
14时06分15秒 CPU %user %nice %system %iowait %steal %idle
14时06分16秒 all 0.50 50.38 0.25 0.76 0.00 48.11
14时06分17秒 all 0.75 50.13 0.50 0.00 0.00 48.62
14时06分18秒 all 0.50 50.25 0.25 0.00 0.00 48.99
Average: all 0.59 50.25 0.34 0.25 0.00 48.58
╭─user@user-3010 ~
╰─$ sar -u ALL 1 3
Linux 3.13.0-52-generic (user-3010) 2016年01月28日 _x86_64_ (4 CPU)
14时45分00秒 CPU %usr %nice %sys %iowait %steal %irq %soft %guest %gnice %idle
14时45分01秒 all 1.26 0.00 1.51 3.52 0.00 0.00 0.00 0.00 0.00 93.72
14时45分02秒 all 1.52 0.00 0.00 3.54 0.00 0.00 0.00 0.00 0.00 94.94
14时45分03秒 all 1.26 0.00 1.01 0.00 0.00 0.00 0.00 0.00 0.00 97.73
Average: all 1.34 0.00 0.84 2.35 0.00 0.00 0.00 0.00 0.00 95.46
命令的变种:
sar -u 显示目前今天CPU使用率.
sar -u 实时显示CPU使用率每秒1次共执行3次.
sar -u ALL 和“sar -u”作用一样,但是显示附加字段.
sar -u ALL 1 3 和“sar -u 1 3”,但是显示附加字段.
sar -u -f /var/log/sysstat/sa10 解析sa10数据文件,显示本月第10天CPU使用率.
Field | Description |
---|
CPU | all 表示统计信息为所有 CPU 的平均值。 |
%user | 显示在用户级别(application)运行使用 CPU 总时间的百分比。注意,这个字段包含运行虚拟处理器花费的时间。 |
%usr | 显示在用户级别(application)运行使用 CPU 总时间的百分比。注意,这个字段不包含运行虚拟处理器花费的时间。 |
%guest | CPU或CPUs运行虚拟处理器花费的时间。 |
%nice | 显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比。 |
%system | 在核心级别(kernel)运行所使用 CPU 总时间的百分比。注意,这个字段包含维护软硬件服务中断花费的时间。 |
%sys | 在核心级别(kernel)运行所使用 CPU 总时间的百分比。注意,这个字段不包含维护软硬件服务中断花费的时间。 |
%irq | CPU或CPUs硬件中断服务花费的时间。 |
%soft | CPU或CPUs软件中断服务花费的时间。 |
%iowait | 显示用于等待I/O操作占用 CPU 总时间的百分比。 |
%steal | 管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。 |
%idle | 显示 CPU 空闲时间占用 CPU 总时间的百分比。 |
每个CPU使用详情(sar -P)
╭─user@user-3010 ~
╰─$ sar -P ALL 1 1
Linux 3.13.0-52-generic (user-3010) 2016年01月28日 _x86_64_ (4 CPU)
15时10分52秒 CPU %user %nice %system %iowait %steal %idle
15时10分53秒 all 1.51 0.00 1.01 0.00 0.00 97.49
15时10分53秒 0 1.02 0.00 0.00 0.00 0.00 98.98
15时10分53秒 1 1.02 0.00 1.02 0.00 0.00 97.96
15时10分53秒 2 2.00 0.00 1.00 0.00 0.00 97.00
15时10分53秒 3 1.98 0.00 0.99 0.00 0.00 97.03
Average: CPU %user %nice %system %iowait %steal %idle
Average: all 1.51 0.00 1.01 0.00 0.00 97.49
Average: 0 1.02 0.00 0.00 0.00 0.00 98.98
Average: 1 1.02 0.00 1.02 0.00 0.00 97.96
Average: 2 2.00 0.00 1.00 0.00 0.00 97.00
Average: 3 1.98 0.00 0.99 0.00 0.00 97.03
命令的变种:
sar -P ALL 显示目前今天每个核心CPU使用率.
sar -P ALL 1 3 实时显示每个核心CPU使用率每秒1次共执行3次.
sar -P 1 显示目前今天1号核心CPU使用率.
sar -P 1 1 3 实时显示每个核心CPU使用率每秒1次共执行3次.
sar -P ALL -f /var/log/sysstat/sa10 解析sa10数据文件,显示本月第10天CPU使用率.
内存使用详情(sar -r)
你很可能会关心“kbmemfree”和“kbmemused”这两个字段,了解空闲内存量和已用内存量.
╭─user@user-3010 ~
╰─$ sar -r 1 3
Linux 3.13.0-52-generic (user-3010) 2016年01月28日 _x86_64_ (4 CPU)
15时42分44秒 kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
15时42分45秒 365572 3582616 90.74 14200 589568 9238660 78.57 2275880 954720 172
15时42分46秒 365084 3583104 90.75 14200 589904 9238368 78.56 2275976 955000 172
15时42分47秒 365100 3583088 90.75 14200 589912 9238368 78.56 2275976 955000 172
Average: 365252 3582936 90.75 14200 589795 9238465 78.56 2275944 954907 172
Field | Description |
---|
kbmemfree | 可用的空闲内存量(单位为千字节)。 |
kbmemused | 已使用内存的量(单位为千字节)。这并不考虑内核本身所使用的内存。 |
%memused | 这个值是kbmemused和内存总量(不包括swap)的一个百分比。 |
kbbuffers | 用于内核缓冲区的内存量。 |
kbcached | 用于内核缓存数据的内存量。 |
kbcommit | 当前系统工作负载所需的内存量。即为了确保不溢出而需要的内存(RAM+swap)。 |
%commit | 这个值是kbcommit与内存总量(RAM+swap)的一个百分比。这个数值也许会大于100%,因为内核经常过量使用内存。 |
交换空间使用详情(sar -S)
如果“kbswpused”和“%swpused”这两个字段为0,说明系统当前没有内存交换.
╭─user@user-3010 ~
╰─$ sar -S 1 3 1 ↵
Linux 3.13.0-52-generic (user-3010) 2016年01月28日 _x86_64_ (4 CPU)
16时06分40秒 kbswpfree kbswpused %swpused kbswpcad %swpcad
16时06分41秒 6727380 1083688 13.87 202772 18.71
16时06分42秒 6727384 1083684 13.87 202768 18.71
16时06分43秒 6727384 1083684 13.87 202768 18.71
Average: 6727383 1083685 13.87 202769 18.71
Field | Description |
---|
kbswpfree | 可用的空闲交换空间内存量(单位为千字节)。 |
kbswpused | 已使用的交换空间内存量(单位为千字节)。这并不考虑内核本身所使用的内存。 |
%swpused | 已使用交换空间内存占比。 |
kbswpcad | 缓存的交换空间内存量(单位为千字节)。 |
%swpcad | 缓存的交换空间内存相对于已使用的交换空间内存比例, 即kbswpcad/kbswpused。 |
内存分页监控(sar -B)
╭─user@user-3010 ~
╰─$ sar -B 1 3
Linux 3.13.0-52-generic (user-3010) 2016年01月28日 _x86_64_ (4 CPU)
16时18分31秒 pgpgin/s pgpgout/s fault/s majflt/s pgfree/s pgscank/s pgscand/s pgsteal/s %vmeff
16时18分32秒 0.00 0.00 37.00 0.00 583.00 0.00 0.00 0.00 0.00
16时18分33秒 0.00 40.00 2666.00 0.00 1599.00 0.00 0.00 0.00 0.00
16时18分34秒 0.00 140.00 55.00 0.00 204.00 0.00 0.00 0.00 0.00
Average: 0.00 60.00 919.33 0.00 795.33 0.00 0.00 0.00 0.00
Field | Description |
---|
pgpgin/s | 表示每秒从磁盘或SWAP置换到内存的字节数(KB) |
pgpgout/s | 表示每秒从内存置换到磁盘或SWAP的字节数(KB) |
fault/s | 每秒系统产生的缺页数,即主缺页与次缺页之和(major + minor) |
majflt/s | 每秒产生的主缺页数. |
pgfree/s | 每秒被放入空闲队列中的页个数 |
pgscank/s | 每秒被kswapd扫描的页个数 |
pgscand/s | 每秒直接被扫描的页个数 |
pgsteal/s | 每秒从cache中被清除来满足内存需要的页个数 |
%vmeff | 每秒清除的页(pgsteal)占总扫描页(pgscank+pgscand)的百分比 |
I/O活动详情(sar -b)
╭─user@user-3010 ~
╰─$ sar -b 1 3
Linux 3.13.0-52-generic (user-3010) 2016年01月28日 _x86_64_ (4 CPU)
16时21分29秒 tps rtps wtps bread/s bwrtn/s
16时21分30秒 3.00 0.00 3.00 0.00 32.00
16时21分31秒 0.00 0.00 0.00 0.00 0.00
16时21分32秒 3.00 0.00 3.00 0.00 120.00
Average: 2.00 0.00 2.00 0.00 50.67
Field | Description |
---|
tps | 每秒钟物理设备的 I/O 传输总量 |
rtps | 每秒钟从物理设备读入的数据总量 |
wtps | 每秒钟向物理设备写出的数据总量 |
bread/s | 每秒钟从物理设备读入的数据量,单位为 块/s |
bwrtn/s | 每秒钟向物理设备写出的数据量,单位为 块/s |
单独块设备I/O活动详情(sar -d)
╭─user@user-3010 ~
╰─$ sar -d 1 3
Linux 3.13.0-52-generic (user-3010) 2016年01月28日 _x86_64_ (4 CPU)
16时31分33秒 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
16时31分34秒 dev8-0 269.00 13528.00 0.00 50.29 1.92 7.12 2.16 58.00
16时31分34秒 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
16时31分35秒 dev8-0 27.00 1576.00 0.00 58.37 0.22 8.30 3.85 10.40
16时31分35秒 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
16时31分36秒 dev8-0 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: dev8-0 98.67 5034.67 0.00 51.03 0.71 7.23 2.31 22.80
如果你使用-p选项打印漂亮的格式,DEV字段将会显示真实的设备名称,例如: sda, sda1, sdb1 etc.
进程创建和系统交换活动情况(sar -w)
╭─user@user-3010 ~
╰─$ sar -w 1 3
Linux 3.13.0-52-generic (user-3010) 2016年01月28日 _x86_64_ (4 CPU)
16时46分22秒 proc/s cswch/s
16时46分23秒 0.00 1595.00
16时46分24秒 9.00 2507.00
16时46分25秒 0.00 1514.00
Average: 3.00 1872.00
Field | Description |
---|
proc/s | 每秒创建的进程数。 |
cswch/s | 每秒上下文切换的总数。 |
进程队列长度和平均负载状态监控(sar -q)
╭─user@user-3010 ~
╰─$ sar -q 1 3
Linux 3.13.0-52-generic (user-3010) 2016年01月28日 _x86_64_ (4 CPU)
16时38分00秒 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15 blocked
16时38分01秒 0 867 0.32 0.26 0.23 0
16时38分02秒 0 866 0.30 0.26 0.23 0
16时38分03秒 0 866 0.30 0.26 0.23 0
Average: 0 866 0.31 0.26 0.23 0
Field | Description |
---|
runq-sz | 运行队列的长度(等待运行的进程数)。 |
plist-sz | 进程列表中进程和线程的数量。 |
ldavg-1 | 最后1分钟的系统平均负载。 |
ldavg-5 | 过去5分钟的系统平均负载。 |
ldavg-15 | 过去15分钟的系统平均负载。 |
blocked | 当前阻塞的进程数量,为了等待I/O完成。 |
网络统计信息报告(sar -n)
sar -n KEYWORD
可能的关键字有DEV, EDEV, NFS, NFSD, SOCK, IP, EIP, ICMP, EICMP, TCP, ETCP, UDP, SOCK6, IP6, EIP6, ICMP6, UDP6, FC.
如果你使用DEV关键字,它将报告所有网络设备的统计信息.
╭─user@user-3010 ~
╰─$ sar -n DEV 1 1
Linux 3.13.0-52-generic (user-3010) 2016年01月28日 _x86_64_ (4 CPU)
17时08分51秒 IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil
17时08分52秒 eth0 1.00 0.00 0.09 0.00 0.00 0.00 0.00 0.00
17时08分52秒 lo 0.00 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 %ifutil
Average: eth0 1.00 0.00 0.09 0.00 0.00 0.00 0.00 0.00
Average: lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Field | Description |
---|
rxpck/s | 每秒接收的数据包总数。 |
txpck/s | 每秒传输的数据包总数。 |
rxkB/s | 每秒接收的字节数(单位KB)。 |
txkB/s | 每秒传输的字节数(单位KB)。 |
rxcmp/s | 每秒接收的压缩包总数。 |
txcmp/s | 每秒传输的压缩包总数。 |
rxmcst/s | 每秒接收的组播数据包总数。 |
%ifutil | 网络接口的利用率。 |
小技巧
sar -q -f /var/log/sysstat/sa23 -s 10:00:01 | head -n 10
: 显示本月第23天上午10:00:01开始,前10条关于进程队列长度和平均负载状态监控报告.
参考链接: sysstat & sar manual page & sar examples & Linux Performance Checklist & linux sar 命令详解