Linux SAR 指令大全

51 篇文章 2 订阅
2 篇文章 0 订阅
  • Linux统计/监控工具SAR详细介绍:要判断一个系统瓶颈问题,有时需要几个 sar 命令选项结合起来使用,例如: 怀疑CPU存在瓶颈,可用 sar -u 和 sar -q deng 等来查看 怀疑内存存在瓶颈,可用 sar -B、sar -r 和 sar -W 等来查看 怀疑I/O存在瓶颈,可用 sar -b、sar -u 和 sar -d 等来查看

     

    sysstat 工具

    内容提要

    1. 了解 sysstat 工具包的组成

    2. 理解 sar 累计工作方式的配置

    3. 掌握 sar 、iostat、mpstat 命令的使用

    sysstat 工具简介

    sysstat 是 Linux 系统中的常用工具包。它的主要用途是观察服务负载,比如CPU和内存的占用率、网络的使用率以及磁盘写入和读取速度等。

    sysstat 工具包中包含两类工具:

    • 即时查看工具:iostat、mpstat、sar

    • 累计统计工具:sar

    也就是说,sar 具有这两种功能。因此,sar 是 sysstat 中的核心工具。

    为了实现 sar 的累计统计,系统必须周期地记录当时的信息,这是通过调用 /usr/lib/sa/ 中的三个工具实现的:

    • sa1 :收集并存储每天系统动态信息到一个二进制的文件中,用作 sadc 的前端程序

    • sa2 :收集每天的系统活跃信息写入总结性的报告,用作 sar 的前端程序

    • sadc :系统动态数据收集工具,收集的数据被写入一个二进制的文件中,它被用作 sar 工具的后端

    在 CentOS 系统的默认设置中,以如下的方式使用这三个工具:

    1. 在守护进程 /etc/rc.d/init.d/sysstat 中使用 /usr/lib/sa/sadc -F -L - 命令创建当日记录文件,文件为 /var/log/sa/saDD,其中 DD 为当天的日期。当系统重新启动后,会向文件 /var/log/sa/saDD 输出类似 11:37:16 AM LINUX RESTART 这样的行信息。

    2. 在 cron 任务 /etc/cron.d/sysstat 中每隔10分钟执行一次 /usr/lib/sa/sa1 1 1 命令,将信息写入文件 /var/log/sa/saDD

    3. 在 cron 任务 /etc/cron.d/sysstat 中每天 23:53 执行一次 /usr/lib/sa/sa2 -A 命令,将当天的汇总信息写入文件 /var/log/sa/saDD

    您可以修改 /etc/cron.d/sysstat 以适合您的需要。

    另外,文件 /var/log/sa/saDD 为二进制文件,不能使用 more、less 等文本工具查看,必须用 sar 或 sadf 命令查看。

    sar

    在使用 Linux 系统时,常常会遇到各种各样的问题,比如系统容易死机或者运行速度突然变慢,这时我们常常猜测:是否硬盘空间不足,是否内存不足,是否 I/O 出现瓶颈,还是系统的核心参数出了问题?这时,我们应该考虑使用 sar 工具对系统做一个全面了解,分析系统的负载状况。

    sar(System Activity Reporter)是系统活动情况报告的缩写。sar 工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。它的特点是可以连续对系统取样,获得大量的取样数据;取样数据和分析的结果都可以存入文件,所需的负载很小。 sar 是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等。为了提供不同的信息,sar 提供了丰富的选项、因此使用较为复杂。

    sar 的命令格式

    sar 的命令格式为:

    sar  [ -A ] [ -b ] [ -B ] [ -c ] [ -d ] [ -i interval ] [ -p ] [ -q ]
         [ -r ] [ -R ] [ -t ] [ -u ] [ -v ] [ -V ] [ -w ] [ -W ] [ -y ]
         [ -n { DEV | EDEV | NFS | NFSD | SOCK | ALL } ]
         [ -x { pid | SELF | ALL } ] [ -X { pid | SELF | ALL } ] 
         [ -I { irq | SUM | ALL | XALL } ] [ -P { cpu | ALL } ]
         [ -o [ filename ] | -f [ filename ] ]
         [ -s [ hh:mm:ss ] ] [ -e [ hh:mm:ss ] ] 
         [ interval [ count ] ]

    其中:

    • interval : 为取样时间间隔

    • count : 为输出次数,若省略此项,默认值为 1

    常用选项:

    选项 说明
    -A等价于 -bBcdqrRuvwWy -I SUM -I XALL -n ALL -P ALL
    -b显示I/O和传送速率的统计信息
    -B输出内存页面的统计信息
    -c输出进程统计信息,每秒创建的进程数
    -d输出每一个块设备的活动信息
    -i interval指定间隔时长,单位为秒
    -p显示友好设备名字,以方便查看,也可以和-d 和-n 参数结合使用,比如 -dp 或-np
    -q输出进程队列长度和平均负载状态统计信息
    -r输出内存和交换空间的统计信息
    -R输出内存页面的统计信息
    -t读取 /var/log/sa/saDD 的数据时显示其中记录的原始时间,如果没有这个参数使用用户的本地时间
    -u输出CPU使用情况的统计信息
    -v输出inode、文件和其他内核表的统计信息
    -V输出版本号信息
    -w输出系统交换活动信息
    -W输出系统交换的统计信息
    -y输出TTY设备的活动信息
    -n {DEV|EDEV|NFS|NFSD|SOCK|ALL}分析输出网络设备状态统计信息。
    DEV报告网络设备的统计信息
    EDEV报告网络设备的错误统计信息
    NFS报告 NFS 客户端的活动统计信息
    NFSD报告 NFS 服务器的活动统计信息
    SOCK报告网络套接字(sockets)的使用统计信息
    ALL报告所有类型的网络活动统计信息
    -x {pid|SELF|ALL}输出指定进程的统计信息。
    pid用 pid 指定特定的进程
    SELF表示 sar 自身
    ALL表示所有进程
    -X {pid|SELF|ALL}输出指定进程的子进程的统计信息
    -I {irq|SUM|ALL|XALL}输出指定中断的统计信息。
    irq指定中断号
    SUM指定输出每秒接收到的中断总数
    ALL指定输出前16个中断
    XALL指定输出全部的中断信息
    -P {cpu|ALL}输出指定 CPU 的统计信息
    -o filename将输出信息保存到文件 filename
    -f filename从文件 filename 读取数据信息。filename 是使用-o 选项时生成的文件。
    -s hh:mm:ss指定输出统计数据的起始时间
    -e hh:mm:ss指定输出统计数据的截至时间,默认为18:00:00

    sar 使用举例

    从 /var/log/sa/saDD 中读取累计统计信息

    1、输出CPU使用情况的统计信息

    [root@cnetos5 ~]# sar
    [root@cnetos5 ~]# sar -u
    Linux 2.6.18-53.el5 (cnetos5)   01/22/2008
    
    12:00:01 AM       CPU     %user     %nice   %system   %iowait    %steal     %idle
    12:10:01 AM       all      0.02      0.00      0.14      0.01      0.00     99.84
    12:20:01 AM       all      0.02      0.00      0.12      0.01      0.00     99.86
    12:30:01 AM       all      0.01      0.00      0.12      0.01      0.00     99.86
    Average:          all      0.03      0.00      0.13      0.01      0.00     99.84

    输出项说明:

    CPUall 表示统计信息为所有 CPU 的平均值。
    %user显示在用户级别(application)运行使用 CPU 总时间的百分比。
    %nice显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比。
    %system在核心级别(kernel)运行所使用 CPU 总时间的百分比。
    %iowait显示用于等待I/O操作占用 CPU 总时间的百分比。
    %steal管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。
    %idle显示 CPU 空闲时间占用 CPU 总时间的百分比。

     

     

     

    1. 若 %iowait 的值过高,表示硬盘存在I/O瓶颈

    2. 若 %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量

    3. 若 %idle 的值持续低于 10,则系统的 CPU 处理能力相对较低,表明系统中最需要解决的资源是 CPU。

     

     

     

    2、显示I/O和传送速率的统计信息

    [root@cnetos5 ~]# sar -b
    Linux 2.6.18-53.el5 (cnetos5)   01/22/2008
    
    12:00:01 AM       tps      rtps      wtps   bread/s   bwrtn/s
    12:10:01 AM      1.58      0.00      1.58      0.00     16.71
    12:20:01 AM      1.09      0.00      1.09      0.00     10.85
    12:30:01 AM      1.08      0.00      1.08      0.00     10.74
    Average:         1.24      0.00      1.24      0.00     12.70

    输出项说明:

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

    3、输出内存页面的统计信息

    [root@cnetos5 ~]# sar -B
    Linux 2.6.18-53.el5 (cnetos5)   01/22/2008
    
    12:00:01 AM  pgpgin/s pgpgout/s   fault/s  majflt/s
    12:10:01 AM      0.00      4.17      9.74      0.00
    12:20:01 AM      0.00      2.71      2.24      0.00
    12:30:01 AM      0.00      2.69      2.25      0.00
    Average:         0.00      3.17      4.07      0.00

    输出项说明:

    pgpgin/s每秒钟从磁盘读入的系统页面的 KB 总数
    pgpgout/s每秒钟向磁盘写出的系统页面的 KB 总数
    fault/s系统每秒产生的页面失效(major + minor)数量
    majflt/s系统每秒产生的页面失效(major)数量

    4、输出每秒创建的进程数的进程统计信息

    [root@cnetos5 ~]# sar -c
    Linux 2.6.18-53.el5 (cnetos5)   01/22/2008
    
    12:00:01 AM    proc/s
    12:10:01 AM      0.05
    12:20:01 AM      0.03
    12:30:01 AM      0.03
    Average:         0.03

    输出项说明:

    proc/s每秒钟创建的进程数

    5、输出网络设备状态的统计信息

    [root@cnetos5 ~]# sar -n DEV |grep eth0
    12:00:01 AM     IFACE   rxpck/s   txpck/s   rxbyt/s   txbyt/s   rxcmp/s   txcmp/s  rxmcst/s
    12:10:01 AM      eth0      0.59      0.92     41.57    893.98      0.00      0.00      0.00
    12:20:01 AM      eth0      0.55      0.88     37.50    859.56      0.00      0.00      0.00
    12:30:01 AM      eth0      0.55      0.86     38.17    871.98      0.00      0.00      0.00
    Average:         eth0      0.29      0.42     21.05    379.29      0.00      0.00      0.00

    输出项说明:

    IFACE网络设备名
    rxpck/s每秒接收的包总数
    txpck/s每秒传输的包总数
    rxbyt/s每秒接收的字节(byte)总数
    txbyt/s每秒传输的字节(byte)总数
    rxcmp/s每秒接收压缩包的总数
    txcmp/s每秒传输压缩包的总数
    rxmcst/s每秒接收的多播(multicast)包的总数

    6、输出网络设备状态的统计信息(查看网络设备故障)

    [root@cnetos5 ~]# sar -n EDEV |egrep 'eth0|IFACE'
    12:00:01 AM     IFACE   rxerr/s   txerr/s    coll/s  rxdrop/s  txdrop/s  txcarr/s  rxfram/s  rxfifo/s  txfifo/s
    12:10:01 AM      eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    12:20:01 AM      eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    12:30:01 AM      eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    Average:         eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

    输出项说明:

    IFACE网络设备名
    rxerr/s每秒接收的坏包总数
    txerr/s传输包时每秒发生错误的总数
    coll/s传输包时每秒发生冲突(collision)的总数
    rxdrop/s接收包时,由于缺乏缓存,每秒丢弃(drop)包的数量
    txdrop/s传输包时,由于缺乏缓存,每秒丢弃(drop)包的数量
    txcarr/s传输包时,每秒发生的传输错误(carrier-error)的数量
    rxfram/s接收包时,每秒发生帧校验错误(frame alignment error)的数量
    rxfifo/s接收包时,每秒发生队列(FIFO)一出错误的数量
    txfifo/s传输包时,每秒发生队列(FIFO)一出错误的数量

    7、输出进程队列长度和平均负载状态统计信息

    [root@cnetos5 ~]# sar -q
    Linux 2.6.18-53.el5 (cnetos5)   01/22/2008
    
    12:00:01 AM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15
    12:10:01 AM         0        85      0.02      0.01      0.00
    12:20:01 AM         0        85      0.01      0.00      0.00
    12:30:01 AM         0        85      0.03      0.01      0.00
    Average:            0        85      0.01      0.00      0.00

    输出项说明:

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

    8、输出内存和交换空间的统计信息

    [root@cnetos5 ~]# sar -r
    Linux 2.6.18-53.el5 (cnetos5)   01/22/2008
    
    12:00:01 AM kbmemfree kbmemused  %memused kbbuffers  kbcached kbswpfree kbswpused  %swpused  kbswpcad
    12:10:01 AM    262068    253408     49.16     43884    156456   1048568         0      0.00         0
    12:20:01 AM    261572    253904     49.26     44580    156448   1048568         0      0.00         0
    12:30:01 AM    260704    254772     49.42     45124    156472   1048568         0      0.00         0
    Average:       259551    255925     49.65     46453    156470   1048568         0      0.00         0

    输出项说明:

    kbmemfree可用的空闲内存数量,单位为 KB
    kbmemused已使用的内存数量(不包含内核使用的内存),单位为 KB
    %memused已使用内存的百分数
    kbbuffers内核缓冲区(buffer)使用的内存数量,单位为 KB
    kbcached内核高速缓存(cache)数据使用的内存数量,单位为 KB
    kbswpfree可用的空闲交换空间数量,单位为 KB
    kbswpused已使用的交换空间数量,单位为 KB
    %swpused已使用交换空间的百分数
    kbswpcad交换空间的高速缓存使用的内存数量

    9、输出内存页面的统计信息

    [root@cnetos5 ~]# sar -R
    Linux 2.6.18-53.el5 (cnetos5)   01/22/2008
    
    12:00:01 AM   frmpg/s   bufpg/s   campg/s
    12:10:01 AM     -0.10      0.23      0.01
    12:20:01 AM     -0.21      0.29     -0.00
    12:30:01 AM     -0.36      0.23      0.01
    Average:        -0.21      0.22      0.00

    输出项说明:

    frmpg/s每秒系统中空闲的内存页面(memory page freed)数量
    bufpg/s每秒系统中用作缓冲区(buffer)的附加内存页面(additional memory page)数量
    campg/s每秒系统中高速缓存的附加内存页面(additional memory pages cached)数量

    10、输出inode、文件和其他内核表的信息

    [root@cnetos5 ~]# sar -v
    Linux 2.6.18-53.el5 (cnetos5)   01/22/2008
    
    12:00:01 AM dentunusd   file-sz  inode-sz  super-sz %super-sz  dquot-sz %dquot-sz  rtsig-sz %rtsig-sz
    12:10:01 AM      7253       576      5126         0      0.00         0      0.00         0      0.00
    12:20:01 AM      7253       576      5126         0      0.00         0      0.00         0      0.00
    12:30:01 AM      7253       576      5126         0      0.00         0      0.00         0      0.00
    Average:         7253       589      5125         0      0.00         0      0.00         0      0.00

    输出项说明:

    dentunusd目录高速缓存中未被使用的条目数量
    file-sz文件句柄(file handle)的使用数量
    inode-szi节点句柄(inode handle)的使用数量
    super-sz由内核分配的超级块句柄(super block handle)数量
    %super-sz已分配的超级块句柄占总超级块句柄的百分比
    dquot-sz已经分配的磁盘限额条目数量
    %dquot-sz分配的磁盘限额条目数量占总磁盘限额条目的百分比
    rtsig-sz已排队的 RT 信号的数量
    %rtsig-sz已排队的 RT 信号占总 RT 信号的百分比

    11、输出系统交换活动信息

    [root@cnetos5 ~]# sar -w
    Linux 2.6.18-53.el5 (cnetos5)   01/22/2008
    
    12:00:01 AM   cswch/s
    12:10:01 AM     44.74
    12:20:01 AM     44.41
    12:30:01 AM     44.41
    Average:        44.50

    输出项说明:

    cswch/s每秒的系统上下文切换数量

    12、 输出系统交换的统计信息

    [root@cnetos5 ~]# sar -W
    Linux 2.6.18-53.el5 (cnetos5)   01/22/2008
    
    12:00:01 AM  pswpin/s pswpout/s
    12:10:01 AM      0.00      0.00
    12:20:01 AM      0.00      0.00
    12:30:01 AM      0.00      0.00
    Average:         0.00      0.00

    输出项说明:

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

    13、输出TTY设备的活动信息

    [root@cnetos5 ~]# sar -y
    Linux 2.6.18-53.el5 (cnetos5)   01/22/2008
    
    12:00:01 AM       TTY   rcvin/s   xmtin/s framerr/s prtyerr/s     brk/s   ovrun/s
    12:10:01 AM         0      0.00      0.00      0.00      0.00      0.00      0.00
    12:10:01 AM         1      0.00      0.00      0.00      0.00      0.00      0.00
    12:20:01 AM         0      0.00      0.00      0.00      0.00      0.00      0.00
    12:20:01 AM         1      0.00      0.00      0.00      0.00      0.00      0.00
    12:30:01 AM         0      0.00      0.00      0.00      0.00      0.00      0.00
    12:30:01 AM         1      0.00      0.00      0.00      0.00      0.00      0.00
    ………………
    Average:            0      0.00      0.00      0.00      0.00      0.00      0.00
    Average:            1      0.00      0.00      0.00      0.00      0.00      0.00

    输出项说明:

    TTYTTY 串行设备号
    rcvin/s每秒接收的中断数量
    xmtin/s每秒传送的中断数量
    framerr/s每秒发生的帧错误数(frame error)量
    prtyerr/s每秒发生的奇偶校验错误(parity error)数量
    brk/s每秒发生的暂停(break)数量
    ovrun/s每秒发生的溢出错误(overrun error)数量

    14、显示全面的累计统计信息

    # sar -A

    15、默认配置不提供的累计统计信息

    [root@cnetos5 ~]# sar -d
    Requested activities not available in file
    [root@cnetos5 ~]# sar -x ALL
    Requested activities not available in file
    [root@cnetos5 ~]# sar -X ALL
    Requested activities not available in file

     

     

     

    1. 默认情况下,为了防止统计数据文件 /var/log/sa/saDD 迅速增大,/usr/lib/sa/sadc 没有记录每个块设备的统计信息。

    2. 可以在 -d -x -X 参数后添加取样参数获得即时统计信息。

    3. 带有 -x -X 选项的 sar 命令从来不能记录到二进制统计数据文件 。

     

     

     

    查看即时统计信息

    1、使用取样选项查看即时统计信息

    例如:每30秒取样一次,连续取样5次

    # sar -n DEV 30 5
    # sar -u  30 5

    2、输出和读取统计信息文件

    例如:

    # sar -u  30 5 -o sar-dump-001
    # sar -u -f  sar-dump-001

    3、输出每一个块设备的活动信息

    # sar -dp 5 2
    Linux 2.6.18-53.el5 (cnetos5)   01/22/2008
    
    07:12:11 AM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
    07:12:16 AM       sda      0.40      0.00     17.56     44.00      0.00      1.00      1.00      0.04
    07:12:16 AM       sdb      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    
    07:12:16 AM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
    07:12:21 AM       sda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    07:12:21 AM       sdb      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
    
    Average:          DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
    Average:          sda      0.20      0.00      8.78     44.00      0.00      1.00      1.00      0.02
    Average:          sdb      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

    输出项说明:

    DEV正在监视的块设备
    tps每秒钟物理设备的 I/O 传输总量
    rd_sec/s每秒从设备读取的扇区(sector)数量
    wr_sec/s每秒向设备写入的扇区(sector)数量
    avgrq-sz发给设备请求的平均扇区数
    avgqu-sz发给设备请求的平均队列长度
    await设备 I/O 请求的平均等待时间(单位为毫秒)
    svctm设备 I/O 请求的平均服务时间(单位为毫秒)
    %util在 I/O 请求发送到设备期间,占用 CPU 时间的百分比。用于体现设备的带宽利用率。

     

     

     

    1. avgqu-sz 的值较低时,设备的利用率较高。

    2. 当 %util 的值接近 100% 时,表示设备带宽已经占满。

     

     

     

    iostat 的命令格式

    iostat 用于输出CPU和磁盘I/O相关的统计信息。命令格式为:

    iostat [ -c | -d ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ device [ ... ]  | ALL ] 
      [ -p [ device | ALL ] ] [ interval [ count ] ]

    其中:

    • interval : 为取样时间间隔

    • count : 为输出次数,若指定了取样时间间隔且省略此项,将不断产生统计信息

    常用选项:

    选项 说明
    -c仅显示CPU统计信息。与-d选项互斥。
    -d仅显示磁盘统计信息。与-c选项互斥。
    -k以KB为单位显示每秒的磁盘请求数。默认单位块。
    -m以MB为单位显示每秒的磁盘请求数。默认单位块。
    -p {device|ALL}用于显示块设备及系统分区的统计信息。与-x选项互斥。
    -t在输出数据时,打印搜集数据的时间。
    -V打印版本号信息。
    -x输出扩展信息。

    iostat 使用举例

    下面给出几个例子:

    # 显示一条包括所有的CPU和设备吞吐率的统计信息
    # iostat
    Linux 2.6.18-53.el5 (cnetos5)   01/21/2008
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               0.10    0.04    0.37    0.07    0.00   99.42
    
    Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
    sda               1.44        16.79        10.58     800430     504340
    sdb               0.01         0.07         0.00       3314          8
    sdc               0.86         8.56         0.00     407892         24
    
    # 每隔5秒显示一次设备吞吐率的统计信息(单位为 块/s)
    # iostat -d 5
    
    # 每隔5秒显示一次设备吞吐率的统计信息(单位为 KB/s),共输出3次
    # iostat -dk 5 3
    
    # 每隔2秒显示一次 sda 及上面所有分区的统计信息,共输出5次
    # iostat -p sda 2 5
    
    # 每隔2秒显示一次 sda 和 sdb 两个设备的扩展统计信息,共输出6次
    # iostat -x sda sdb 2 6
    Linux 2.6.18-53.el5 (cnetos5)   01/21/2008
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               0.10    0.04    0.37    0.07    0.00   99.42
    
    Device:     rrqm/s   wrqm/s   r/s   w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
    sda           0.17     0.84  0.96  0.47    16.67    10.56    19.01     0.01    7.11   1.25   0.18
    sdb           0.00     0.00  0.01  0.00     0.07     0.00     5.16     0.00    0.22   0.19   0.00
    
    …………

    iostat 的输出项说明

    avg-cpu 部分输出项说明:

    %user在用户级别运行所使用的 CPU 的百分比。
    %nicenice 操作所使用的 CPU 的百分比。
    %system在核心级别(kernel)运行所使用 CPU 的百分比。
    %iowaitCPU 等待硬件 I/O 所占用 CPU 的百分比。
    %steal当管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。
    %idleCPU 空闲时间的百分比。

    Device 部分基本输出项说明:

    tps每秒钟物理设备的 I/O 传输总量。
    Blk_read读入的数据总量,单位为块。
    Blk_wrtn写入的数据总量,单位为块。
    kB_read读入的数据总量,单位为KB。
    kB_wrtn写入的数据总量,单位为KB。
    MB_read读入的数据总量,单位为MB。
    MB_wrtn写入的数据总量,单位为MB。
    Blk_read/s每秒从驱动器读入的数据量,单位为 块/s。
    Blk_wrtn/s每秒向驱动器写入的数据量,单位为 块/s。
    kB_read/s每秒从驱动器读入的数据量,单位为KB/s。
    kB_wrtn/s每秒向驱动器写入的数据量,单位为KB/s。
    MB_read/s每秒从驱动器读入的数据量,单位为MB/s。
    MB_wrtn/s每秒向驱动器写入的数据量,单位为MB/s。

    Device 部分扩展输出项说明:

    rrqm/s将读入请求合并后,每秒发送到设备的读入请求数。
    wrqm/s将写入请求合并后,每秒发送到设备的写入请求数。
    r/s每秒发送到设备的读入请求数。
    w/s每秒发送到设备的写入请求数。
    rsec/s每秒从设备读入的扇区数。
    wsec/s每秒向设备写入的扇区数。
    rkB/s每秒从设备读入的数据量,单位为 KB/s。
    wkB/s每秒向设备写入的数据量,单位为 KB/s。
    rMB/s每秒从设备读入的数据量,单位为 MB/s。
    wMB/s每秒向设备写入的数据量,单位为 MB/s。
    avgrq-sz发送到设备的请求的平均大小,单位为扇区。
    avgqu-sz发送到设备的请求的平均队列长度。
    awaitI/O请求平均执行时间。包括发送请求和执行的时间。单位为毫秒。
    svctm发送到设备的I/O请求的平均执行时间。单位为毫秒。
    %util在I/O请求发送到设备期间,占用CPU时间的百分比。用于显示设备的带宽利用率。当这个值接近100%时,表示设备带宽已经占满。

    mpstat

    mpstat 的命令格式

    mpstat 输出每一个 CPU 的运行状况,为多处理器系统中的 CPU 利用率提供统计信息。命令格式为:

    mpstat [ -P { cpu | ALL } ] [ -V ] [ interval [ count ] ]

    其中:

    • interval : 为取样时间间隔。指定0则输出自系统启动后的一个统计信息。

    • count : 为输出次数。若指定了取样时间间隔且省略此项,将不断产生统计信息。

    常用选项:

    选项 说明
    -P {cpu|ALL}指定 CPU。用 CPU-ID 指定,CPU-ID 是从0开始的,即第一个CPU为0。ALL 表示所有CPU。
    -V输出版本号信息。

    mpstat 使用举例

    下面给出几个例子:

    # 输出所有 CPU 使用情况的统计信息。
    # mpstat
    Linux 2.6.18-53.el5 (cnetos5)   01/21/2008
    
    10:39:06 AM  CPU   %user   %nice    %sys %iowait    %irq   %soft  %steal   %idle    intr/s
    10:39:06 AM  all    0.10    0.04    0.31    0.06    0.04    0.01    0.00   99.45   1012.99
    
    # 输出第一个 CPU 使用情况的统计信息。
    # mpstat -P 0
    Linux 2.6.18-53.el5 (cnetos5)   01/21/2008
    
    10:41:03 AM  CPU   %user   %nice    %sys %iowait    %irq   %soft  %steal   %idle    intr/s
    10:41:03 AM    0    0.09    0.02    0.40    0.09    0.08    0.01    0.00   99.32   1012.79
    
    # 每隔2秒输出所有CPU的统计信息,共输出5次。
    # mpstat 2 5
    
    # 每隔2秒输出一次所有CPU的统计信息,共输出5次。
    # mpstat -P ALL 2 5
    
    # 每隔2秒输出一次第二个CPU的统计信息,共输出5次。
    # mpstat -P 1 2 5

    mpstat 输出项说明

    CPU在多CPU系统里,每个CPU有一个ID号,第一个CPU为0。all表示统计信息为所有CPU的平均值。
    %user显示在用户级别运行所占用CPU总时间的百分比。
    %nice显示在用户级别,用于nice操作,所占用CPU总时间的百分比。
    %sys显示在kernel级别运行所占用CPU总时间的百分比。注意:这个值并不包括服务中断和softirq。
    %iowait显示用于等待I/O操作时,占用CPU总时间的百分比。
    %irq显示用于中断操作,占用CPU总时间的百分比。
    %soft显示用于softirq操作,占用CPU总时间的百分比。
    %steal管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。
    %idle显示CPU在空闲状态,占用CPU总时间的百分比。
    intr/s

    显示CPU每秒接收到的中断总数。

 

 

**************************

SAR

NAME:

         SAR报告,收集,保存系统活动信息

语法:

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命令会把收集到的系统活动信息写入到标准输出。收集到的值根据interval和count不同而不同,如果没有interval值,sar命令会显示从启动到现在的平均值。如果有interval没有count,那么信息会一直生成。收集到的信息也可以通过-o输出到文件上。如果没有指定文件路径,sar会标准系统活动每天生成一个文件,在/var/log/sa/sadd,其中dd是当前日期。

 

Sar命令获取的并且写入到标准输出前,记录到文件里面,这个文件可以用-o指定,默认被存在标准系统活动每日文件中。可以使用-f来读取这些文件中的数据。

 

如果不用-P,会报告系统范围统计信息,并计算他们的平均值。如果使用-P可以指定特定的处理器,如果是用-P ALL,会报告所有的CPU,和所有处理器的全局统计信息。

 

然后可以使用选项来选择信息,如果不指定选项那么查CPU活动,-A=-bBdqrRSvwWy -I SUM -I XALL –n ALL -u ALL -P ALL.

 

 

选项:

         -A               和-bBdqrRSuvwWy -I SUM -I XALL –n ALL -u ALL -P ALL相同

-b               报告io传输率统计

-B               报告分页信息,2.5内核版本之后才可用

-C               从文件中读取时,让sar显示由sabc输入的comment

-d               报告每个块设备(2.4内核之后),dev列中,为devm-n,m为major,n为minor,在2.5之前只是一个顺序值。加-p参数dev会显示的比较可读。用-j来指定设备名类型。

                   注意,磁盘活动依赖与sabc选项 –S DISK或-S XDISK。

-e               设置报告的结束时间,默认结束时间是18:00:00,24小时制,这个选项可以在读写文件的时候使用,-f,-o

-f                从文件中读取,这个文件由-o创建,默认为/var/log/sa/sadd。

-h               帮助

-i                和直接用[interval]类似,获取数据间隔。

-I                统计中断发送int [,...] | SUM | ALL | XALL },int+终端号指定查询某个特定的中断,SUM对所有中断合计,ALL 前16个中断,XALL统计所有中断。

-j                { ID | LABEL | PATH | UUID | ... }指定设备名类型

--legacy    启用读老的/var/log/sa/sadd文件。RH6.3之后修改了/var/log/sa/sadd文件的格式。

-m              报告CPU频率统计,依赖于sabc选项-S POWER

-n               { keyword [,...] | ALL }网络统计报告,这里的关键字为:DEV, EDEV, NFS, NFSD, SOCK, IP, EIP, ICMP, EICMP, TCP, ETCP, UDP, SOCK6, IP6, EIP6, ICMP6, EICMP6 和UDP6.

-o               输出的二进制文件,默认为/var/log/sa/sadd,可以用-f读取来分析

-P               { cpu [,...] | ALL }返回指定cpu的统计信息,指定ALL则为全部

-p               让设备名更加可读,会把devm-n转化为可读的设备名。和iostat –N用法类似

-q               报告队列长度和负荷平均值

-r                内存使用报告

-R               内存统计报告

-s               [ hh:mm:ss ]设置sar抓数据开始时间默认08:00:00,用-f来读取生成的数据

-S               Swap空间使用报告

-t                在从文件读取时,使用文件的创建时的日期,如果不加则使用机器本地的日期(试了一下没啥变化)

-u               [ ALL ]CPU使用率报告,通过ALL可以显示全部字段

-v               报告inode,file,其他内核表,

-V               查看版本号

-w              系统切换计数报告

-W             swap切换报告

-y               报告TTY活动

报告:

         I/O模式(-b)

tps  

每秒钟发送在物理设备上的传输次数

rtps 

每秒钟发送在物理设备上的读的传输次数

wtps        

每秒钟发送在物理设备上的写传输次数

bread/s   

每秒钟读取block的个数,2.4内核和扇区相同,2.4之后是512B,老的内核不确定。

                   bwrtn/s

                            每秒钟写入block个数

       

         内存页模式(-B)

                   pgpgin/s

                            从磁盘中pagein的KB,来的内核2.2.X是blocks/s

                   pgpgout/s

                            pageout到从盘的KB,来的内核2.2.X是blocks/s

                   fault/s

                            每秒页错误次数,major+minor次数,major引起物理io,minor不引起物理io

         majflt/s

                            每秒major页错误次数,发送IO

                   pgfree/s

                            每秒被放到free list的页个数

                   pgscank/s

                            每秒被kswapd daemon扫描的页个数

         pgscand/s

                            每秒直接被扫描的页个数

                   pgsteal/s

                            为了保证内存需求的安全,每秒从cache(pagecache,swapcache)回收的页数

                   %vmeff

%vmeff=pgsteal/pgscan,反应了页回收效率,如果接近100%,那么就表示页基本上来至于不活动队列尾(tail of inactive list),如果百分比很低(少于30%),那么虚拟内存有点困难,如果为0表示每秒被扫描页为0.

 

         块设备模式(-d)

                   tps

                            每秒钟发送到设备的传输次数

                   rd_sec/s

                            每秒钟从设备上读取的扇区数,512B

                   wr_sec/s

                            每秒钟写入到设备上的扇区数,512B

                   avgrq-sz

                            平均请求的扇区数

                   avgqu-sz

                            平均请求的设备队列长度

                   await

                            从I/O请求到被完成花的平均时间,包含花费在队列里面的时间和执行时间。

                   svctime

                            I/O请求被执行的时间

                   %util

当请求I/O发生的时候,cpu的使用率(就是设备使用的带宽),当设备饱和,CPU会接近100%。

         Power模式(-m)

                   MHz

                            cpu频率

         网络模式(-n)

                   略

         队列长度和平均负荷(-q)

                   runq-sz

                            运行队列长度(等待run time的任务个数)

                   plist-sz

                            任务列表中的任务个数

                   ldavg-1

最近1分钟内系统负荷平均值,负荷平均值=特定间隔内可运行的任务(R状态)+不可中断睡眠的任务(D状态)

                   ldavg-5

                            最近5分钟系统负荷平均值

                   ldavg-15

                            最近15分钟系统负荷平均值

         内存使用模式(-r)

                   kbmemfree

                            可用内存量单位kb

                   kbmemused

                            被使用的内存kb,不计算被内核使用的内存

                   %memused

                            内存使用百分比

                   kbbuffer

                            被内核作为buffer使用的内存单位kb

                   kbcached

                            被内核当cache使用的内存单位kb

                   kbcommit

当前工作负荷要使用的内存。用来评估需要多少RAM/swap来保证不会超出内存

                   %commit

当前需要的内存/RAM+swap,要保证大于100%,因为内核通常都overcommit内存。

         内存统计模式(-R)

                   frmpg/s

每秒内存释放的页数。负数说明系统分配的页数,注意根据机器结构不同页大小也不同,4kb或者8kb。

                   bufpg/s

                            每秒buffer使用额外的page数,负数表示buffer使用的页数变小。

                   campg/s

                            每秒cache使用额外的page数,负数表示cache页数变小。

         Swap空间使用模式(-S)

                   kbswpfree

                            swap空间可用大小单位kb

                   kbswpused

                            已经被使用的swap空间kb

                   %swpused

                            使用百分比

                   kbswpcad

swap内容被缓存在内存的kb (amount of cached swap memory in kilobytes)。这个内存是被换出,但是换入的时候依然在swap空间内的。如果需要内存,就不需要换出了,因为已经在swap了可以减少I/O。

                   %swpcad

                            swap被缓存在内存的数据占swap使用总空间的比率

         CPU使用率(-u)

                  %user

                            用户级别程序使用的cpu比率,这个值包含虚拟处理器使用的时间

                   %usr

                            用户级别程序使用的cpu比率,这个值不包含虚拟处理器使用的时间

                   %nice

                            nice优先级用户级应用程序的cpu比率

                   %system

                            系统级(内核)cpu使用率,包含服务硬件的有时间和软件中断的时间

                   %sys

                            系统级(内核)cpu使用率,不包含服务硬件的有时间和软件中断的时间

                   %iowait

                            CPU空闲,并且有未完成I/O的时间

                   %steal

当hypervisor 为另外一个虚拟处理器提供服务的时候,无意识的等待虚拟 C     PU或者CPU 的比率

                   %irq

                            CPU服务硬件中断的时间

                   %soft

                            CPU服务软终端的时间

                   %guest

                            用户服务虚拟处理器时间

                   %idle

                            CPU空间,并且没有未完成的磁盘I/O请求

         inode,file,内核表状态(-v)

                   dentunusd

                            目录cache中没有使用的项

                   file-nr

                            系统所使用的文件句柄个数

                   inode-nr

                            inode句柄个数

                   pty-nr

                            pseudo-terminals使用的数量

         系统切换(-w)

                   proc/s

                            每秒进程创建个数

                   cswch/s

                            每秒上面文切换次数

         swap切换(-W)

                   pswpin/s

                            每秒swap in的页数

                   pswpout/s

                            每秒swap out的页数

         TTY设备报告(-y)

                   略

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值