sar 工具
sar
命令是 Linux 下系统运行状态统计工具,它将指定的操作系统状态计数器显示到标准输出设备。
sar
工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。它的特点是可以连续对系统取样,获得大量的取样数据。取样数据和分析的结果都可以存入文件,使用它时消耗的系统资源很小。
命令用法
和 vmstat
以及 iostat
类似,interval
代表状态信息刷新的时间间隔, count
代表显示报告的次数。
常用可选参数
-A
—— 等同于指定-bBdqrRSuvwWy -I SUM -I XALL -n ALL -u ALL -P ALL
-b
—— 显示 I/O 以及传输速率的统计信息。其取值如下所示:tps
每秒发送给物理设备的总的传输量(指发送给物理设备的 I/O 请求)。多个逻辑请求会合并为单独的一个 I/O 请求,因此,传输量的大小是不确定的。rtps
每秒发送给物理设备的总的读取请求。wtps
每秒发送给物理设备的总的写入请求。bread/s
每秒钟以块形式从设备读取的数据的多少。在 2.4 以上版本的内核钟,这个块大小等于扇区大小,因此为 512 字节。在以前的版本,这个大小是不确定的。bwrtn/s
每秒钟以块形式往设备写入的数据的多少。
-B
—— 报告页统计信息。以下的一些值只有在 2.5 内核版本前才可用:pgpgin/s
每秒从磁盘中置换出来的页的大小,以千字节的形式显示(2.2 版本前这个值表示块数量)pgpgout/s
每秒写入磁盘的页的大小,以千字节的形式显示(2.2 版本前这个值表示块数量)fault/s
每秒由系统产生的 page fault (包括 minor 和 major)的数量majflt/s
每秒由系统产生的 major page fault 的数量,这些都是需要从磁盘中加载一份内存页的。pgfree/s
每秒钟系统释放的内存页的数目pgscank/s
每秒由 kwsapd 守护进程扫描到的内存页数目pgscand/s
每秒直接扫描的内存页的数目pgsteal/s
每秒系统根据内存开销需要从缓存中取回的内存页的数目%vmeff
计算pgsteal
/pgscan
,得到页置换效率的矩阵图。
-C
—— 当从文件中读取数据时,告诉sar
来展示通过sadc
插入的注释-d
—— 报告每个块设备的活动信息(只在 2.4 版本以上内核可用)-e [ hh:mm:ss ]
—— 设置报告的结束时间。默认的结束时间是 18:00:00 。小时必须以 24 小时制的形式。这个选项可以用在读写文件中(使用-f
或-o
)-f [filename]
从filename
中提取记录,默认值是当前日志数据文件/var/log/sa/sadd
文件。和-o
不可以同时使用。-i interval
—— 在尽可能接近interval
时间间隔里获取数据记录。-n { keyword [,...] | ALL }
报告网络统计信息。可选的 keyword 为DEV
,EDEV
,NFS
,NFSD
,SOCK
,IP
,EIP
,ICMP
,EICMP
,TCP
,ETCP
,UDP
,SOCK6
,IP6
,EIP6
,ICMP6
,EICMP6
以及UDP6
.-o [ filename ]
—— 以二进制格式保存 reading 到文件中。每个 reading 都是单独的记录。filename
的默认值是/var/log/sa/sadd
文件。-P { cpu [,...] | ALL }
—— 报告指定的处理器或所有处理器的统计信息。注意 processor 0 是第一个处理器q
报告队列长度以及平均负载信息。显示以下结果:runq-sz
运行队列长度(等待运行的任务的数目)plist-sz
任务列表中任务数量ldavg-l
上一分钟系统的平均负载ldavg-5
最近 5 分钟的系统平均负载ldavg-15
最近 15 分钟的系统平均负载
-r
报告内存的使用率的统计信息,显示以下结果:kbmemfree
可用的空闲内存大小(千字节)kbmemused
已使用内存大小(不包括内核本身使用)(千字节)%memused
已使用内存百分比kbbuffers
内核用来作为缓冲区的内存大小(千字节)kbcached
内核用来缓存数据的内存大小(千字节)%commit
当前工作载荷所需要的内存百分比(通常会超过 100%)
-R
—— 报告内存统计信息,显示以下结果:frmpg/s
系统每秒释放的内存页数目,负值代表系统需要分配的页数目。一个页通常是 4KB 或 8KB(视机器架构而定)bufpg/s
系统每秒需要用作缓冲区的额外内存页数目。campg/s
系统每秒用作缓存的额外内存页数目
-s[ hh:mm:ss ]
—— 设置数据的起始时间,因为sar
工具会从这个指定的时间点开始被触发并提取数据,默认是 08:00:00 。小时必须以 24 小时制的形式。这个选项可以用在读写文件中(使用-f
或-o
)-S
报告 swap 空间的使用率统计情况kbswpfree
空闲 swap 空间大小(千字节)kbswpused
已用 swap 空间大小(千字节)%swpused
已用 swap 空间百分比kbswpcad
缓存的 swap 内存的数目(千字节)%swpcad
缓存的 swap 内存占医用 swap 空间的百分比
-u [ ALL ]
—— 报告 CPU 的使用情况。-v
报告 inode 、 file 以及其他内核表的状况-w
报告任务创建以及系统切换的活动信息-W
报告交换区的统计信息-y
报告 TTY (终端)设备的活动信息
使用示例
每 2 秒统计 CPU 的使用情况,显示 5 行:
显示内存和网络的统计信息并保存到日志文件
sal6
中:显示当前日志文件中保存的全部统计信息:
已知 BUG
sar
只有在/proc
文件系统以被挂载的情况下才能使用。不是所有的统计信息都可用,取决于所使用的内核版本
使用文件
/var/log/sa/sadd
默认的日志数据文件,dd
表示的是这个月的第几天/proc
包含多个不同的系统统计文件
Last updated