sar 工具
sar 命令是 Linux 下系统运行状态统计工具,它将指定的操作系统状态计数器显示到标准输出设备。
sar 工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。它的特点是可以连续对系统取样,获得大量的取样数据。取样数据和分析的结果都可以存入文件,使用它时消耗的系统资源很小。
命令用法
$ sar [ options ] [ <interval> [ <count> ] ]和 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 行:
$ sar -u 2 5显示内存和网络的统计信息并保存到日志文件
sal6中:$ sar -r -n DEV -f /var/log/sa/sal6显示当前日志文件中保存的全部统计信息:
$ sar -A
已知 BUG
sar只有在/proc文件系统以被挂载的情况下才能使用。不是所有的统计信息都可用,取决于所使用的内核版本
使用文件
/var/log/sa/sadd默认的日志数据文件,dd表示的是这个月的第几天/proc包含多个不同的系统统计文件
Last updated