sar 命令

NAME
       sar - Collect, report, or save system activity information.

SYNOPSIS
       sar  [  -A  ]  [ -b ] [ -B ] [ -C ] [ -d ] [ -h ] [ -i interval ] [ -m ] [ -p ] [ -q ] [ -r ] [ -R ] [ -S ] [ -t ] [ -u [ ALL ] ] [ -v ] [ -V ] [ -w ] [ -W ] [ -y ] [ -j { ID |
       LABEL | PATH | UUID | ... } ] [ -n { keyword [,...] | ALL } ] [ -I { int [,...] | SUM | ALL | XALL } ] [ -P { cpu [,...] | ALL } ] [ -o [ filename ] |  -f  [  filename  ]  ]  [
       --legacy ] [ -s [ hh:mm:ss ] ] [ -e [ hh:mm:ss ] ] [ interval [ count ] ]
sar(System Activity Reporter)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等。

参数:
  • -A 汇总所有的报告
  • -B 报告分页的使用情况
  • -b 显示I/O 和传送速率的统计信息
  • -d 报告磁盘的使用情况
  • -e:设置显示报告的结束时间
  • -f:从指定文件提取报告
  • -g 报告串口的使用情况
  • -i:设状态信息刷新的间隔时间
  • -n 报告网络状况
  • -q 报告队列长度和系统平均负载
  • -R 报告内存使用情况
  • -r 报告内存利用率统计
  • -u 报告CPU的利用率
  • -v 报告进程、i节点、文件和锁表状态
  • -w 报告系统交换活动状况
  • -y 报告TTY设备活动状况
 cpu资源监控
sar -u

  CPU : all 表示统计信息为所有CPU的平均值
  %user: 显示用户级别(application)运行使用CPU总时间的百分比
  %nice: 显示在用户级别, 用于nice操作, 所占用CPU总时间的百分比
  %system : 在核心级别(kernel)运行所使用CPU总时间的百分比
  %iowait: 显示用于等待I/O 操作占用CPU总时间的百分比
  %steal: 管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟CPU的百分比
  %idle: 显示CPU空闲时间占用CPU总时间的百分比
  若%iowait 的值过高, 表示硬盘存在I/O 瓶颈
  若%idle 的值高但系统响应慢时, 有可能是CPU等待分配内存, 此时应加大内存容量
  若%idle 的值持续低 , 则系统的CPU 处理能力相对较低, 表明系统中最需要解决的资源是CPU

  inode、文件和其他内核表监控
  sar -v

  

  dentunused : 目录高速缓存中未被使用的条目数量
  file-nr : 文件句柄 (file handle)的使用数量
  inode-nr: 索引节点句柄(inode handle) 的使用数量
  pty-nr: 使用的pty 数量

  内存和交换空间监控

  sar  -r

  

  kbmemfree:这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间.
  kbmemused:这个值和free命令中的used值基本一致,所以它包括buffer和cache的空间.
  %memused:这个值是kbmemused和内存总量(不包括swap)的一个百分比.
  kbbuffers和kbcached:这两个值就是free命令中的buffer和cache.
  kbcommit:当前工作负载所需的内存量(以KB为单位),即为了确保不溢出而需要的内存(RAM+swap).
  %commit:这个值是kbcommit与内存总量(包括swap)的一个百分比.

  内存分页监控

  sar -B

  

  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

    

  tps:每秒钟物理设备的 I/O 传输总量
  rtps:每秒钟从物理设备读入的数据总量
  wtps:每秒钟向物理设备写入的数据总量
  bread/s:每秒钟从物理设备读入的数据量,单位为 块/s
  bwrtn/s:每秒钟向物理设备写入的数据量,单位为 块/s

  进程队列长度和平均负载状态监控

  sar -q

 

  runq-sz:运行队列的长度(等待运行的进程数)
  plist-sz:进程列表中进程(processes)和线程(threads)的数量
  ldavg-1:最后1分钟的系统平均负载(System load average)
  ldavg-5:过去5分钟的系统平均负载
  ldavg-15:过去15分钟的系统平均负载

  系统交换活动信息监控

  sar -W

    

  pswpin/s:每秒系统换入的交换页面(swap page)数量
  pswpout/s:每秒系统换出的交换页面(swap page)数量

  设备使用情况监控

  sar -d

  

  tps:每秒从物理磁盘I/O的次数.多个逻辑请求会被合并为一个I/O磁盘请求,一次传输的大小是不确定的
  rd_sec/s:每秒读扇区的次数
  wr_sec/s:每秒写扇区的次数
  avgrq-sz:平均每次设备I/O操作的数据大小(扇区)
  avgqu-sz:磁盘请求队列的平均长度
  await:从请求磁盘操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,单位是毫秒(1秒=1000毫秒)
  svctm:系统处理每次请求的平均时间,不包括在请求队列中消耗的时间
  %util:I/O请求占CPU的百分比,比率越大,说明越饱和

  sar分析网络流量

  sar -n DEV

  

  sar 提供六种不同的语法选项来显示网络信息。-n选项使用6个不同的开关:DEV | EDEV | NFS | NFSD | SOCK | ALL 。DEV显示网络接口信息,EDEV显示关于网络错误的统计数据,NFS统计活动的NFS客户端的信息,NFSD统计NFS服务器的信息,SOCK显示套接字信息,ALL显示所有5个开关。它们可以单独或者一起使用。

  IFACE:LAN接口,网络设备的名称
  rxpck/s:每秒钟接收的数据包
  txpck/s:每秒钟发送的数据包
  rxbyt/s:每秒钟接收的字节数
  txbyt/s:每秒钟发送的字节数
  rxcmp/s:每秒钟接收的压缩数据包
  txcmp/s:每秒钟发送的压缩数据包
  rxmcst/s:每秒钟接收的多播数据包

  sar -n EDEV

  

  IFACE:LAN接口网络设备的名称
  rxerr/s:每秒钟接收的坏数据包 
  txerr/s:每秒钟发送的坏数据包
  coll/s:每秒冲突数
  rxdrop/s:因为缓冲充满,每秒钟丢弃的已接收数据包数
  txdrop/s:因为缓冲充满,每秒钟丢弃的已发送数据包数
  txcarr/s:发送数据包时,每秒载波错误数
  rxfram/s:每秒接收数据包的帧对齐错误数
  rxfifo/s:接收的数据包每秒FIFO过速的错误数
  txfifo/s:发送的数据包每秒FIFO过速的错误数

要判断系统瓶颈问题,有时需几个 sar 命令选项结合起来:
   怀疑CPU存在瓶颈,可用 sar -u 和 sar -q 等来查看
   怀疑内存存在瓶颈,可用 sar -B、sar -r 和 sar -W 等来查看
   怀疑I/O存在瓶颈,可用 sar -b、sar -u 和 sar -d 等来查看

赠人玫瑰,手有余香,如果我的文章有幸能够帮到你,麻烦帮忙点下右下角的推荐,谢谢!

作者: imcati

出处: https://www.cnblogs.com/imcati/>

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 原文链接

原文地址:https://www.cnblogs.com/imcati/p/11523594.html