# **sar** ## 说明 **sar命令** System Activity Reporter是Linux下系统运行状态统计工具,它将指定的操作系统状态计数器显示到标准输出设备。sar工 具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。它的特点是可以连续对系统取样,获得大量的取 样数据。取样数据和分析的结果都可以存入文件,使用它时消耗的系统资源很小。[源码](http://github.com/sysstat/sysstat) ```markdown sar命令常用格式 sar [options] [-A] [-o file] t [n] -A 显示所有的报告信息 -b 显示I/O速率 -B 显示换页状态 -c 显示进程创建活动 -d 显示每个块设备的状态 -e 设置显示报告的结束时间 -f 从指定文件提取报告 -i 设状态信息刷新的间隔时间 -P 报告每个CPU的状态 -R 显示内存状态 -u 显示CPU利用率 -v 显示索引节点,文件和其他内核表的状态 -w 显示交换分区状态 -x 显示给定进程的状态 * 间隔时间:每次报告的间隔时间(秒) * 次数:显示报告的次数 配置文件目录:/etc/sysconfig ``` ## 实例 ```bash sar -r # 查看内存和交换空间的使用率 : << comment 输出解释: kbmemfree与kbmemused字段分别显示内存的未使用与已使用空间,后面跟着的是已使用空间的百分比(%memused字段) kbbuffers与kbcached字段分别显示缓冲区与系统全域的数据存取量,单位为KB comment sar -o temp 60 10 # 观察系统部件10分钟,并对数据进行排序 sar -u 1 3 # 查看CPU利用率 : << comment 输出详解: %user: 显示在用户级别(application)运行使用 CPU 总时间的百分比. %nice: 显示在用户级别,用于nice操作,所占用CPU总时间的百分比. %system:在核心级别(kernel)运行所使用 CPU 总时间的百分比. %iowait:显示用于等待I/O操作占用CPU总时间的百分比. %steal: 管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟CPU的百分比. %idle: 显示CPU空闲时间占用CPU总时间的百分比 comment sar -v 1 3 # 查看inode、文件和其他内核表状态 : << comment 输出详解: dentunusd: 目录缓存中未使用的缓存条目数 file-nr: 由系统使用的文件数 inode-nr: 由系统使用的inode数 pty-nr: 系统所使用的伪终端数 comment sar -q # 查看平均负载 : << comment 输出详解: runq-sz: 运行队列的长度(等待运行的进程数) plist-sz:进程列表中进程(processes)和线程(threads)的数量 ldavg-1: 最后1分钟的系统平均负载 ldavg-5: 过去5分钟的系统平均负载 ldavg-15:过去15分钟的系统平均负载 comment sar -R 1 5 # 查看内存状态 : << comment 输出详解: frmpg/s :每秒钟系统释放的内存页数. 如果是负值,表示每秒钟被系统分配的内存页数. bufpg/s :每秒钟系统分配多少内存页作为buffer使用. 如果是负值,表示系统在回收一定的buffer空间. campg/s :每秒钟系统分配多少内存页作为bcached使用. 如果是负值,表示系统在回收一定的cached空间. comment sar -W # 查看页面交换情况 : << comment 输出详解: pswpin/s Total number of swap pages the system brought in per second. pswpout/s Total number of swap pages the system brought out per second. comment sar -w 1 5 # 任务创建和系统切换活动情况 : << comment 输出详解: proc/s: 每秒创建的任务的总数. cswch/s:每秒上下文切换的总数. comment sar -b 1 5 # I/O和传输速率统计 : << comment 输出详解: tps: 每秒钟向物理设备发出请求(读与写)的总数 rtps: 每秒钟向物理设备发出读请求的总数 wtps: 每秒钟向物理设备发出写请求的总数 bread/s: 每秒从块设备中读取的数据总数 bwrtn/s: 每秒向块设备中写入的数据总数 comment sar -B 1 5 # 输出paging信息 : << comment 输出详解: pgpgin/s: 每秒从磁盘或SWAP置换到内存的字节数 pgpgout/s: 每秒从内存置换到磁盘或SWAP的字节数 fault/s: 每秒钟系统产生的缺页数,即主缺页与次缺页之和(major + minor) majflt/s: 每秒钟产生的主缺页数 pgfree/s: 每秒被放入空闲队列中的页个数 pgscank/s: 每秒被kswapd扫描的页个数 pgscand/s: 每秒直接被扫描的页个数 pgsteal/s: 每秒钟从cache中被回收来满足内存需要的页个数 %vmeff: 每秒回收的页(pgsteal)占总扫描页(pgscank+pgscand)的百分比 缺页异常: major(内存中没有需要的数据) minor (内存中有这样的数据,单最先不是该进程的) comment sar -n DEV 1 1 # 此为查看lo、eth0接口网络信息,查看网络相关信息,可用参数为DEV、EDEV、SOCK、FULL : << comment 输出详解: IFACE:就是网络设备的名称; rxpck/s:每秒钟接收到的包数 txpck/s:每秒钟发送出去的包数目 rxbyt/s:每秒钟接收到的字节数 txbyt/s:每秒钟发送出去的字节数 rxcmp/s:每秒钟接收到的压缩包数目 txcmp/s:每秒钟发送出去的压缩包数目 txmcst/s:每秒钟接收到的多播包的包数目 如果使用EDEV输出详解: rxerr/s:每秒钟接收到的损坏的包的数目 txerr/s:当发送包时,每秒钟发生的错误数 coll/s: 当发送包时,每秒钟发生的冲撞(collisions)数(这个是在半双工模式下才有) rxdrop/s:由于缓冲区满,网络设备接收端,每秒钟丢掉的网络包的数目 txdrop/s:由于缓冲区满,网络设备发送端,每秒钟丢掉的网络包的数目 txcarr/s:当发送数据包时,每秒钟载波错误发生的次数 rxfram/s:在接收数据包时,每秒钟发生的帧对齐错误的次数 rxfifo/s:在接收数据包时,每秒钟缓冲区溢出错误发生的次数 txfifo/s:在发送数据包时,每秒钟缓冲区溢出错误发生的次数 如果使用SOCK输出详解: totsck:被使用的socket的总数目 tcpsck:当前正在被使用于TCP的socket数目 udpsck:当前正在被使用于UDP的socket数目 rawsck:当前正在被使用于RAW的socket数目 ip-frag:当前的IP分片的数目 comment