zoukankan      html  css  js  c++  java
  • Linux系统性能监控命令系列之 sar

    大家好,我是Sean

    在使用我们碰到问题可谓是五花八门,系统卡顿、死机、宕机、I/O出现瓶颈等等,这时,我们应该考虑使用系统给我们提供的sar命令来对系统作一个了解,该命令是系统维护的重要工具,主要帮助我们掌握系统资源的使用情况,特别是内存和CPU 的使用情况。

    sar(系统运行状态统计工具)

    在使用我们碰到问题可谓是五花八门,系统卡顿、死机、宕机、I/O出现瓶颈等等,这时,我们应该考虑使用系统给我们提供的sar命令来对系统作一个了解,该命令是系统维护的重要工具,主要帮助我们掌握系统资源的使用情况,特别是内存和CPU 的使用情况。

    sar命令 是Linux下系统运行状态统计工具,它将指定的操作系统状态计数器显示到标准输出设备。sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。它的特点是可以连续对系统取样,获得大量的取样数据。取样数据和分析的结果都可以存入文件,使用它时消耗的系统资源很小。

    启动命令参数

    -A:显示所有的报告信息;
    -b:显示I/O速率;
    -B:显示换页状态;
    -c:显示进程创建活动;
    -d:显示每个块设备的状态;
    -e:设置显示报告的结束时间;
    -f:从指定文件提取报告;
    -i:设状态信息刷新的间隔时间;
    -P:报告每个CPU的状态;
    -R:显示内存状态;
    -u:显示CPU利用率;
    -v:显示索引节点,文件和其他内核表的状态;
    -w:显示交换分区状态;
    -x:显示给定进程的状态。
    

    常用命令

    查看CPU使用情况
    sar 1 3  或 sar -u 1 3 
    每1秒打印一次cpu状况,打印3次后退出
    
    将cpu统计结果保存到文件
    sar -o test 1 3
    每1秒打印一次cpu状况,打印3次后退出,并保存到文件test
    sar -f test
    查看保存到test文件的cpu记录
    
    查看平均负载
    sar -q 1 3
    
    查看系统swap分区统计情况
    sar -W 1 3
    
    查看IO和传递速率
    sar -b 1 3
    
    查看磁盘使用情况
    sar -d 
    
    统计网络信息     
    sar -n DEV
    sar -n EDEV
    统计socket连接信息         
    sar -n SOCK
    TCP连接的统计          
    sar -n TCP
    
    查看内存使用情况
    sar -r 1 3
    

    命令详解

    查看CPU使用情况

    sar 1 3  或 sar -u 1 3 
    

    %user   用户空间的CPU使用
    %nice   改变过优先级的进程的CPU使用率
    %system   内核空间的CPU使用率
    %iowait   CPU等待IO的百分比 
    %steal   虚拟机的虚拟机CPU使用的CPU
    %idle   空闲的CPU
    

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

    sar还可以把CPU使用情况记录成二进制文件,并可以重新读取:

    生成文件:sar -o test 1 3
    查看文件:sar -f test
    

    查看平均负载

    sar -q 1 3
    

    runq-sz    运行队列的长度(等待运行的进程数,每核的CP不能超过3个)
    plist-sz   进程列表中的进程(processes)和线程数(threads)的数量
    ldavg-1  最后1分钟的CPU平均负载,即将多核CPU过去一分钟的负载相加再除以核心数得出的平均值,5分钟和15分钟以此类推
    ldavg-5   最后5分钟的CPU平均负载
    ldavg-15  最后15分钟的CPU平均负载
    

    查看内存使用情况

    sar -r 1 3
    

    kbmemfree   空闲的物理内存大小
    kbmemused   使用中的物理内存大小
    %memused  	物理内存使用率
    kbbuffers  	内核中作为缓冲区使用的物理内存大小,kbbuffers和kbcached:这两个值就是free命令中的buffer和cache. 
    kbcached  	缓存的文件大小
    kbcommit   	保证当前系统正常运行所需要的最小内存,即为了确保内存不溢出而需要的最少内存(物理内存+Swap分区)
    commit   	这个值是kbcommit与内存总量(物理内存+swap分区)的一个百分比的值
    kbactive  
    kbinact 
    kbdirty 
    

    查看系统swap分区统计情况

    sar -W 1 3
    

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

    查看IO和传递速率

    sar -b 1 3
    

    tps  磁盘每秒钟的IO总数,等于iostat中的tps
    rtps  每秒钟从磁盘读取的IO总数
    wtps  每秒钟从写入到磁盘的IO总数
    bread/s  每秒钟从磁盘读取的块总数
    bwrtn/s  每秒钟此写入到磁盘的块总数
    

    查看磁盘使用情况

    sar -d
    

    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越慢
    

    统计网络信息

    sar -n 参数
    
    sar -n DEV
    

    sar -n EDEV 1 1 
    

    sar -n SOCK
    

    参数 含义
    DEV 网络接口统计信息
    EDEV 网络接口错误
    NFS NFS 客户端
    NFSD NFS 服务器
    SOCK 套接字
    IP IP流
    EIP IP流错误
    ICMP ICMP流
    EICMP ICMP流错误
    TCP TCP流
    ETCP TCP流错误
    UDP UDP流
    SOCK6 套接字
    IP6 IP流
    EIP6 IP流错误
    ICMP6 ICMP流
    EICMP6 ICMP流错误
    UDP6 UDP流

    今天的分享就到这里啦!感谢各位的阅读!码字不易,如果本文对你有帮助的话,帮忙点个赞吧~哈哈。

  • 相关阅读:
    信息安全系统设计与实现第四周:《Unix/Linux系统编程》第七、八章学习笔记
    sort
    团队作业
    信息安全系统设计与实现第三周:《Unix/Linux系统编程》第十章学习笔记
    信息安全系统设计与实现第二周:《Unix/Linux系统编程》第九章学习笔记
    信息安全系统设计与实现第一周:《Unix/Linux系统编程》第一、二章学习笔记
    sort
    20191232赵景乐学习笔记1
    python3 http.server模块 搭建简易 http 服务器
    git 回滚到指定commit
  • 原文地址:https://www.cnblogs.com/ws007/p/13930135.html
Copyright © 2011-2022 走看看