本文为joshua317原创文章,转载请注明:转载自joshua317博客 一天一个 Linux 命令(38):sar 命令 - joshua317的博客
一、简介
Linux下的sar(英文全称:System Activity Reporter,系统活动情况报告)是系统运行状态统计工具的命令,它将指定的操作系统状态计数器显示到标准输出设备。
sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。它的特点是可以连续对系统取样,获得大量的取样数据。取样数据和分析的结果都可以存入文件,使用它时消耗的系统资源很小。
sar是目前 Linux上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等。
如果系统没有安装,可以通过sudo yum install sysstat
来安装。
二、格式说明
sar [ options ] [ <interval> [ <count> ] ]
sar [参数]
Usage: sar [ options ] [ <interval> [ <count> ] ]
Options are:
[ -A ] [ -B ] [ -b ] [ -C ] [ -d ] [ -F [ MOUNT ] ] [ -H ] [ -h ] [ -p ] [ -q ] [ -R ]
[ -r ] [ -S ] [ -t ] [ -u [ ALL ] ] [ -V ] [ -v ] [ -W ] [ -w ] [ -y ]
[ -I { <int> [,...] | SUM | ALL | XALL } ] [ -P { <cpu> [,...] | ALL } ]
[ -m { <keyword> [,...] | ALL } ] [ -n { <keyword> [,...] | ALL } ]
[ -j { ID | LABEL | PATH | UUID | ... } ]
[ -f [ <filename> ] | -o [ <filename> ] | -[0-9]+ ]
[ -i <interval> ] [ -s [ <hh:mm:ss> ] ] [ -e [ <hh:mm:ss> ] ]
三、选项说明
-A 所有报告的总和
-b 显示I/O和传递速率的统计信息
-B 显示换页状态
-d 输出每一块磁盘的使用信息
-e 设置显示报告的结束时间
-f 从制定的文件读取报告
-i 设置状态信息刷新的间隔时间
-P 报告每个CPU的状态
-R 显示内存状态
–u 输出cpu使用情况和统计信息
–v 显示索引节点、文件和其他内核表的状态
-w 显示交换分区的状态
-x 显示给定进程的装
-r 报告内存利用率的统计信息
四、命令功能
五、常见用法
5.1 使用-R参数显示内存状态
# sar -R
#每间隔1秒统计一次内存状态
# sar -R 1
#每间隔1秒统计一次内存状态,总共统计5次
# sar -R 1 5
5.2 使用-r报告内存利用率的统计信息
# sar -r
#每间隔1秒统计一次内存利用率
# sar -r 1
#每间隔1秒统计一次内存利用率,总共统计5次
# sar -r 1 5
10:15:52 AM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty
10:15:53 AM 418204 7590452 94.78 211956 4688244 3511820 43.85 4589848 2338480 400
10:15:54 AM 417956 7590700 94.78 211956 4688244 3511820 43.85 4589848 2338480 92
10:15:55 AM 417956 7590700 94.78 211956 4688244 3511820 43.85 4589848 2338480 92
10:15:56 AM 417832 7590824 94.78 211956 4688252 3511824 43.85 4589848 2338488 100
10:15:57 AM 417460 7591196 94.79 211956 4688252 3511828 43.85 4589868 2338484 100
Average: 417882 7590774 94.78 211956 4688247 3511822 43.85 4589852 2338482 157
# kbmemfree 空闲的物理内存大小
# kbmemused 使用中的物理内存大小
# %memused 物理内存使用率
# kbbuffers 内核中作为缓冲区使用的物理内存大小,kbbuffers和kbcached:这两个值就是free命令中的buffer和cache.
# kbcached 缓存的文件大小
# kbcommit 保证当前系统正常运行所需要的最小内存,即为了确保内存不溢出而需要的最少内存(物理内存+Swap分区)
# commit 这个值是kbcommit与内存总量(物理内存+swap分区)的一个百分比的值
5.3 使用-b参数显示I/O速率
# sar -b
#每间隔1秒统计一次I/O速率
# sar -b 1
#每间隔1秒统计一次I/O速率,总共统计5次
# sar -b 1 5
10:18:56 AM tps rtps wtps bread/s bwrtn/s
10:18:57 AM 0.00 0.00 0.00 0.00 0.00
10:18:58 AM 0.00 0.00 0.00 0.00 0.00
10:18:59 AM 2.00 0.00 2.00 0.00 72.00
10:19:00 AM 1.00 0.00 1.00 0.00 8.00
10:19:01 AM 3.00 0.00 3.00 0.00 40.00
Average: 1.20 0.00 1.20 0.00 24.00
# tps 磁盘每秒钟的IO总数,等于iostat中的tps
# rtps 每秒钟从磁盘读取的IO总数
# wtps 每秒钟从写入到磁盘的IO总数
# bread/s 每秒钟从磁盘读取的块总数
# bwrtn/s 每秒钟此写入到磁盘的块总数
5.4 使用-d参数查看磁盘使用详情统计
# sar -d
#每间隔1秒查看磁盘使用详情统计
# sar -d 1
#每间隔1秒查看磁盘使用详情统计,总共统计5次
# sar -d 1 5
10:21:49 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
10:21:50 AM dev253-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10:21:50 AM dev11-0 0.00