• sar


    sar 是非常强大性能分析命令,通过 sar 命令可以全面的获取系统的 CPU、运行队列、磁盘 I/O、交换区、内存、 cpu 中断、网络等性能数据。

    sar 命令行的常用格式:

    sar [options] [-A] [-o file] t [n]
    在命令行中, n 和 t 两个参数组合起来定义采样间隔和次数, t 为采样间隔, 是必须有的参数, n 为采样次数,是可选的,默认值是 1, -o file 表示将命令结果以二进制格式存放在文件中, file 在此处不是关键字,是文件名。

    options 为命令行选项, sar 命令的选项很多,下面只列出常用选项:
    -A:所有报告的总和。
    -u: CPU 利用率,输出CPU使用情况的统计信息
    -v:输出进程、节点、文件和锁表状态。
    -p:像是当前系统中指定 CPU 使用信息。
    -d:硬盘使用报告,输出每一个块设备的活动信息
    -r:显示系统内存的使用情况,输出内存和交换空间的统计信息
    -n: 显示网络运行状态。 参数后面可跟 DEV、 EDEV、 SOCK 和 FULL。 DEV 显示网络接口信息, EDEV 显示网络错误的统计数据, SOCK 显示套接字信息, FULL 显示前三参数所以信息。
    -q:显示运行队列的大小,它与系统当时的平均负载相同
    -B:内存分页情况
    -R:显示进程在采样时间内的活动情况。
    -g:串口 I/O 的情况。
    -b:缓冲区使用情况,显示I/O和传送速率的统计信息
    -a:文件读写情况。
    -c:系统调用情况,输出进程统计信息,每秒创建的进程数
    -R:输出内存页面的统计信息
    -y:终端设备活动情况。
    -W:系统交换活动信息。

    总结

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

    1. CPU利用率

    sar -p (查看全天)

    sar -u 1 10 (1:每隔一秒,10:写入10次)

    1.1. CPU输出项说明

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

    2. 内存利用率(内存和交换空间监控)

    sar -r (查看全天)

    sar -r 1 10 (1:每隔一秒,10:写入10次)

    2.1. 内存输出项说明

    输出项 详细说明
    kbmemfree 这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间。
    kbmemused 这个值和free命令中的used值基本一致,所以它包括buffer和cache的空间。
    %memused 这个值是kbmemused和内存总量(不包括swap)的一个百分比。
    kbbuffers和kbcached 这两个值就是free命令中的buffer和cache。
    kbcommit 保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM+swap)。
    %commit 这个值是kbcommit与内存总量(包括swap)的一个百分比。 

    3. 磁盘I/O

    sar -d (查看全天)

    sar -d 1 2 (1:每隔一秒,2:写入2次)

    3.1. IO输出项说明

    输出项 详细说明
    tps 每秒从物理磁盘 I/O 的次数.多个逻辑请求会被合并为一个 I/O 磁盘请求,一次传输的大小是不确定的
    rd_sec/s 每秒读扇区的次数
    wr_sec/s 每秒写扇区的次数
    avgrq-sz 平均每次设备 I/O 操作的数据大小(扇区)。
    avgqu-sz 磁盘请求队列的平均长度
    await 表示平均每次设备I/O操作的等待时间(以毫秒为单位)。 
    svctm 表示平均每次设备I/O操作的服务时间(以毫秒为单位)。
    %util 表示一秒中有百分之几的时间用于I/O操作。 

    4. 网络流量

    sar -n DEV (查看全天)

    sar -n DEV 1 2 (1:每隔一秒,2:写入2次)

     

    4.1. DEV输出项说明

    输出项 详细说明
    IFACE 就是网络设备的名称。
    rxpck/s 每秒钟接收到的包数目。
    txpck/s 每秒钟发送出去的包数目。
    rxkB/s 每秒钟接收到的字节数。
    txkB/s 每秒钟发送出去的字节数。
    rxcmp/s 每秒钟接收到的压缩包数目。
    txcmp/s 每秒钟发送出去的压缩包数目。
    rxmcst/s 每秒钟接收到的多播包的包数目。

    5. 内存分页监控

    sar -B 5 3

    5.1. 输出项说明

    输出项 说明
    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)的百分比;

    6. I/O 和传送速率监控

    sar -b 5 3

    6.1. 输出项说明

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

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

    sar -q 5 3

    7.1. 输出项说明

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

    8. 系统交换活动信息监控

    sar -W 3 5

    8.1. 输出项说明

    输出项 说明
    pswpin/s 每秒系统换入的交换页面(swap page)数量
    pswpout/s 每秒系统换出的交换页面(swap page)数量
  • 相关阅读:
    dedecms为导航栏目添加英文标题
    网页设计中一些小功能
    less使用总结
    canvas图形库
    前端面试总结三
    前端面试总结二
    DOM节点中获取文本易混淆的属性
    前端面试总结
    git 学习使用总结三(远程仓库操作)
    git 学习使用总结二(远程仓库操作)
  • 原文地址:https://www.cnblogs.com/lvchengda/p/12741194.html
Copyright © 2020-2023  润新知