Linux sar 性能监控命令

Linux sar 性能监控命令

语法:

sar [ 选项 ] [ <时间间隔> [ <次数> ] ]

# sar -h

Usage: sar [ options ] [ <interval> [ <count> ] ]
Main options and reports:
    -b    I/O and transfer rate statistics           # I/O 和传输速率信息状况
    -B    Paging statistics                          # 分页状况
    -d    Block device statistics                    # 块设备状况
    -F [ MOUNT ]
        Filesystems statistics
    -H    Hugepages utilization statistics           # 交换空间利用率
    -I { <int> | SUM | ALL | XALL }                
        Interrupts statistics                        # 中断信息状况
    -m { <keyword> [,...] | ALL }
        Power management statistics                  # 电源统计信息
        Keywords are:
        CPU    CPU instantaneous clock frequency     # CPU 频率
        FAN    Fans speed                            # 风扇 速率
        FREQ    CPU average clock frequency
        IN    Voltage inputs                         # 输入电压
        TEMP    Devices temperature                  # 设备温度
        USB    USB devices plugged into the system   # USB 设备
    -n { <keyword> [,...] | ALL }
        Network statistics                           # 网络统计信息
        Keywords are:
        DEV    Network interfaces                     # 网卡
        EDEV    Network interfaces (errors)          # 网卡(错误)
        NFS    NFS client                             # NFS客户端
        NFSD    NFS server                         # NFS服务器
        SOCK    Sockets    (v4)                       # SOCKets 套接字(v4)
        IP    IP traffic    (v4)                       # IP流(v4)
        EIP    IP traffic    (v4) (errors)              # IP流(v4)(错误)
        ICMP    ICMP traffic    (v4)               # ICMP流(v4)
        EICMP    ICMP traffic    (v4) (errors)      # ICMP流(v4)(错误)
        TCP    TCP traffic    (v4)                       # TCP 流 (v4)
        ETCP    TCP traffic    (v4) (errors)          # TCP 流 (v4)(错误)
        UDP    UDP traffic    (v4)                       # UDP流(v4)
        SOCK6    Sockets    (v6)                       # SOCKets 套接字(v6)
        IP6    IP traffic    (v6)                       # IP流(v6)
        EIP6    IP traffic    (v6) (errors)          # IP流(v6)(错误)
        ICMP6    ICMP traffic    (v6)               # ICMP流(v6)
        EICMP6    ICMP traffic    (v6) (errors)      # ICMP流(v6)(错误)
        UDP6    UDP traffic    (v6)                   # UDP流(v6)
    -q    Queue length and load average statistics   # 队列长度和平均负载
    -r    Memory utilization statistics              # 内存利用率
    -R    Memory statistics                          # 内存状况
    -S    Swap space utilization statistics          # 交换空间利用率
    -u [ ALL ]                                     
        CPU utilization statistics                   # CPU利用率
    -v    Kernel table statistics                    # Kernel table状况
    -w    Task creation and system switching statistics # 任务创建和系统转换统计信息
    -W    Swapping statistics                        # 交换信息
    -y    TTY device statistics                      # TTY设备状况
 

1、查看CPU使用情况:sar -u

 
# sar 1 3  或 sar -u 1 3
02:23:08 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
02:23:09 PM     all      0.06      0.00      0.25      0.00      0.00     99.69
02:23:10 PM     all      0.06      0.00      0.25      0.00      0.00     99.69
02:23:11 PM     all      0.12      0.00      0.12      0.00      0.00     99.75
Average:        all      0.08      0.00      0.21      0.00      0.00     99.71

%user   用户空间的CPU使用

%nice   改变过优先级的进程的CPU使用率

%system 内核空间的CPU使用率

%iowait CPU等待IO的百分比

%steal  虚拟机的虚拟机CPU使用的CPU

%idle   空闲的CPU

在以上的显示当中,主要看%iowait和%idle,%iowait过高表示存在I/O瓶颈,即磁盘IO无法满足业务需求,如果%idle过低表示CPU使用率比较严重,需要结合内存使用等情况判断CPU是否瓶颈。
 

2、将统计结果保存到文件 sar -o  &  sar -f

# sar -o test 1 3   #保存
# sar -f test       #查看

3、查看平均负载  sar -q

 
# sar -q 1 3
02:26:21 PM   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
02:26:22 PM         1       770      0.04      0.05      0.00         0
02:26:23 PM         0       770      0.04      0.05      0.00         0
02:26:24 PM         0       770      0.04      0.05      0.00         0
Average:            0       770      0.04      0.05      0.00         0

runq-sz    运行队列的长度(等待运行的进程数,每核的CP不能超过3个)

plist-sz   进程列表中的进程(processes)和线程数(threads)的数量

ldavg-1  最后1分钟的CPU平均负载,即将多核CPU过去一分钟的负载相加再除以核心数得出的平均值,5分钟和15分钟以此类推

ldavg-5   最后5分钟的CPU平均负载

ldavg-15  最后15分钟的CPU平均负载
 

4、查看内存使用情况  sar -r

# sar -r 1 3
02:27:46 PM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
02:27:47 PM  26480272   6249176     19.09         0    337228  10898528     33.30   5397912    207104        48
02:27:48 PM  26488904   6240544     19.07         0    337228  10637100     32.50   5386964    207104        48
02:27:49 PM  26492992   6236456     19.05         0    337216  10634380     32.49   5385340    207076        52
Average:     26487389   6242059     19.07         0    337224  10723336     32.76   5390072    207095        49

kbmemfree   空闲的物理内存大小

kbmemused   使用中的物理内存大小

%memused    物理内存使用率

kbbuffers   内核中作为缓冲区使用的物理内存大小,kbbuffers和kbcached:这两个值就是free命令中的buffer和cache. 

kbcached    缓存的文件大小

kbcommit    保证当前系统正常运行所需要的最小内存,即为了确保内存不溢出而需要的最少内存(物理内存+Swap分区)

commit      这个值是kbcommit与内存总量(物理内存+swap分区)的一个百分比的值
 

5、查看系统swap分区统计情况  sar -W

 
# sar -W 1 3
02:29:43 PM  pswpin/s pswpout/s
02:29:44 PM      0.00      0.00
02:29:45 PM      0.00      0.00
02:29:46 PM      0.00      0.00
Average:         0.00      0.00

pswpin/s    每秒从交换分区到系统的交换页面(swap page)数量

pswpott/s   每秒从系统交换到swap的交换页面(swap page)的数量
 

6、查看IO和传递速率  sar -b

 
# sar -b 1 3
02:30:36 PM       tps      rtps      wtps   bread/s   bwrtn/s
02:30:37 PM      0.00      0.00      0.00      0.00      0.00
02:30:38 PM      0.00      0.00      0.00      0.00      0.00
02:30:39 PM      1.00      0.00      1.00      0.00      8.00
Average:         0.33      0.00      0.33      0.00      2.67
tps      磁盘每秒钟的IO总数,等于iostat中的tps

rtps     每秒钟从磁盘读取的IO总数

wtps     每秒钟从写入到磁盘的IO总数

bread/s  每秒钟从磁盘读取的块总数

bwrtn/s  每秒钟此写入到磁盘的块总数
 

7、查看磁盘使用情况  sar -d

 
# sar -d
12:00:01 AM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
12:10:01 AM  dev253-0      0.41      0.00      5.56     13.67      0.00      0.38      0.68      0.03
12:10:01 AM dev253-16      0.98      0.00     23.33     23.89      0.00      0.16      0.32      0.03
12:20:01 AM  dev253-0      0.39      0.00      5.12     13.07      0.00      0.22      0.67      0.03
12:20:01 AM dev253-16      0.99      0.00     21.27     21.42      0.00      0.12      0.34      0.03
12:30:01 AM  dev253-0      0.41      0.00      5.38     13.24      0.00      0.27      0.72      0.03
12:30:01 AM dev253-16      1.01      0.00     20.20     19.90      0.00      0.12      0.34      0.03
12:40:01 AM  dev253-0      0.42      0.00      5.58     13.40      0.00      0.28      0.66      0.03
12:40:01 AM dev253-16      1.03      0.00     23.65     23.04      0.00      0.15      0.30      0.03
12:50:01 AM  dev253-0      0.42      0.00      5.85     14.05      0.00      0.30      0.65      0.03
12:50:01 AM dev253-16      0.95      0.00     20.20     21.34      0.00      0.12      0.34      0.03
01:00:01 AM  dev253-0      0.39      0.00      9.89     25.68      0.00      0.32      0.72      0.03
01:00:01 AM dev253-16      0.99      0.00     22.57     22.84      0.00      0.17      0.32      0.03
01:10:01 AM  dev253-0      0.35      0.00      4.65     13.22      0.00      0.19      0.74      0.03
01:10:01 AM dev253-16      0.97      0.00     20.15     20.88      0.00      0.14      0.34      0.03
01:20:01 AM  dev253-0      0.37      0.00      4.98     13.58      0.00      0.25      0.72      0.03
01:20:01 AM dev253-16      1.10      0.00     29.05     26.49      0.00      0.18      0.31      0.03
01:30:01 AM  dev253-0      0.38      0.00      5.17     13.66      0.00      0.27      0.76      0.03
01:30:01 AM dev253-16      0.87      0.00     14.33     16.44      0.00      0.14      0.37      0.03
01:40:01 AM  dev253-0      0.39      0.00      5.29     13.63      0.00      0.23      0.73      0.03
01:40:01 AM dev253-16      1.17      0.00     29.09     24.87      0.00      0.16      0.30      0.04

DEV  磁盘设备的名称,如果不加-p,会显示dev253-0类似的设备名称,因此加上-p显示的名称更直接

tps  每秒I/O的传输总数

rd_sec/s  每秒读取的扇区的总数

wr_sec/s  每秒写入的扇区的总数

avgrq-sz  平均每次次磁盘I/O操作的数据大小(扇区)

avgqu-sz  磁盘请求队列的平均长度

await  从请求磁盘操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,单位是毫秒(1秒等于1000毫秒),等于寻道时间+队列时间+服务时间

svctm  I/O的服务处理时间,即不包括请求队列中的时间

%util  I/O请求占用的CPU百分比,值越高,说明I/O越慢
 

8、统计网络信息 sar -n 

 
-n { <关键词> [,...] | ALL }
        关键词可以是:
        DEV    网卡
        EDEV    网卡 (错误)
        NFS    NFS 客户端
        NFSD    NFS 服务器
        SOCK    Sockets (套接字)    (v4)
        IP    IP 流    (v4)
        EIP    IP 流    (v4) (错误)
        ICMP    ICMP 流    (v4)
        EICMP    ICMP 流    (v4) (错误)
        TCP    TCP 流    (v4)
        ETCP    TCP 流    (v4) (错误)
        UDP    UDP 流    (v4)
        SOCK6    Sockets (套接字)    (v6)
        IP6    IP 流    (v6)
        EIP6    IP 流    (v6) (错误)
        ICMP6    ICMP 流    (v6)
        EICMP6    ICMP 流    (v6) (错误)
        UDP6    UDP 流    (v6)
 

9、网络接口信息 sar -n DEV

 
# sar -n DEV 1 1
02:34:57 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
02:34:58 PM      eth1      0.00      0.00      0.00      0.00      0.00      0.00      0.00
02:34:58 PM      eth0     35.00     50.00      4.12      7.56      0.00      0.00      0.00
02:34:58 PM      eth2     35.00     50.00      4.12      7.56      0.00      0.00      0.00
02:34:58 PM        lo     30.00     30.00      2.60      2.60      0.00      0.00      0.00
IFACE  本地网卡接口的名称

rxpck/s  每秒钟接受的数据包

txpck/s  每秒钟发送的数据库

rxKB/S   每秒钟接受的数据包大小,单位为KB

txKB/S   每秒钟发送的数据包大小,单位为KB

rxcmp/s  每秒钟接受的压缩数据包

txcmp/s  每秒钟发送的压缩包

rxmcst/s  每秒钟接收的多播数据包    
 

10、网络设备通信失败信息 sar -n EDVE

 
# sar -n EDEV 1 1
02:35:46 PM     IFACE   rxerr/s   txerr/s    coll/s  rxdrop/s  txdrop/s  txcarr/s  rxfram/s  rxfifo/s  txfifo/s
02:35:47 PM      eth1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
02:35:47 PM      eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
02:35:47 PM      eth2      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
02:35:47 PM        lo      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  当发送数据包时候,每秒钟发生的冲撞(collisions)数,这个是在半双工模式下才有

rxdrop/s  当由于缓冲区满的时候,网卡设备接收端每秒钟丢掉的网络包的数目

txdrop/s 当由于缓冲区满的时候,网络设备发送端每秒钟丢掉的网络包的数目

txcarr/s  当发送数据包的时候,每秒钟载波错误发生的次数

rxfram/s   在接收数据包的时候,每秒钟发生的帧对其错误的次数

rxfifo/s    在接收数据包的时候,每秒钟缓冲区溢出的错误发生的次数

txfifo/s    在发生数据包 的时候,每秒钟缓冲区溢出的错误发生的次数
 

11、统计socket连接信息  sar -n SOCK

 
# sar -n SOCK 1 1
02:36:26 PM    totsck    tcpsck    udpsck    rawsck   ip-frag    tcp-tw
02:36:27 PM       248        27         4         0         0         5
Average:          248        27         4         0         0         5

totsck  当前被使用的socket总数

tcpsck  当前正在被使用的TCP的socket总数

udpsck   当前正在被使用的UDP的socket总数

rawsck  当前正在被使用于RAW的skcket总数

if-frag   当前的IP分片的数目

tcp-tw  TCP套接字中处于TIME-WAIT状态的连接数量
复制代码

12、TCP连接的统计  sar -n TCP 

 
# sar -n TCP 1 1
02:36:56 PM  active/s passive/s    iseg/s    oseg/s
02:36:57 PM      1.00      0.00     74.00     88.00
Average:         1.00      0.00     74.00     88.00

active/s  新的主动连接

passive/s  新的被动连接

iseg/s  接受的段

oseg/s  输出的段
 

总结:

 
默认监控: sar 1 1      //  CPU和IOWAIT统计状态 
(1) sar -b 1 1        // IO传送速率
(2) sar -B 1 1        // 页交换速率
(3) sar -c 1 1        // 进程创建的速率
(4) sar -d 1 1        // 块设备的活跃信息
(5) sar -n DEV 1 1    // 网路设备的状态信息
(6) sar -n SOCK 1 1   // SOCK的使用情况
(7) sar -n ALL 1 1    // 所有的网络状态信息
(8) sar -P ALL 1 1    // 每颗CPU的使用状态信息和IOWAIT统计状态 
(9) sar -q 1 1        // 队列的长度(等待运行的进程数)和负载的状态
(10) sar -r 1 1       // 内存和swap空间使用情况
(11) sar -R 1 1       // 内存的统计信息(内存页的分配和释放、系统每秒作为BUFFER使用内存页、每秒被cache到的内存页)
(12) sar -u 1 1       // CPU的使用情况和IOWAIT信息(同默认监控)
(13) sar -v 1 1       // inode, file and other kernel tablesd的状态信息
(14) sar -w 1 1       // 每秒上下文交换的数目
(15) sar -W 1 1       // SWAP交换的统计信息(监控状态同iostat 的si so)
(16) sar -x 2906 1 1  // 显示指定进程(2906)的统计信息,信息包括:进程造成的错误、用户级和系统级用户CPU的占用情况、运行在哪颗CPU上
(17) sar -y 1 1       // TTY设备的活动状态
(18) 将输出到文件(-o)和读取记录信息(-f)
 

参考:https://blog.csdn.net/liyongbing1122/article/details/89517282

原文地址:https://www.cnblogs.com/shujuyr/p/14811882.html