开发者

Linux性能监控的工具集和分析命令工具详解

目录
  • 常见磁盘IO性能指标
    • 磁盘读写常见指标
    • sysstat提供了linux性能监控的工具集
      • 【全局命令】 IOStat
      • 多核CPU监控的核心工具mpstat
      • 进程级资源监控pidstat
  • 磁盘IO常见指标和分析命令工具介绍
    • 局部命令iotop
    • 总结

      常见磁盘IO性能指标

      磁盘读写常见指标

      IOPS(Input/Output Operations per Second)

      • 指每秒能处理的I/O个数,表示块存储处理读写(输出/输入)的能力,单位为次,有顺序IOPS和随机IOPS
      • 比如100次/秒,那iops就是100次/秒,例如数据库类应用等典型场景重点提升这个指标,下面是阿里云盘性能

      吞吐量/带宽(Throughput)

      • 是指单位时间内可以成功传输的数据数量,单位为MB/s
      • 如 一个硬盘的读写 IO 是 1MB,DGSxezLNu硬盘的 IOPS 是 100,那么硬盘总的吞吐率就是 100MB/s

      带宽 = IOPS *DGSxezLNu IO大小

      访问时延(Latency)

      • 是指IO请求从发出到收到响应的间隔时间,常以毫秒ms或者微妙us为单位
      • 硬盘响应时间 = 硬盘访问时间 + IO排队延迟,过高的时延会导致应用性能下降或报错
      • 普通的HDD磁盘,随机IO读写延迟是10毫秒,IO带宽大约100MB/秒,随机IOPS一般在100左右

      使用率 Utilization

      • 指磁盘处理 I/O 的时间百分比,过高的使用率 ,常规字段 Utilization-缩写%util 表示
      • 如超过 80%意味着磁盘 I/O 存在性能瓶颈
      • I/O 等待队列长度 Queue Length

      表示等待处理的 I/O 请求的数目,如果 I/O 请求压力持续超出磁盘处理能力,就会增大队列长度

      饱和度

      • 磁盘处理 I/O 的繁忙程度,过高的饱和度说明磁盘存在严重的性能瓶颈
      • 当饱和度为 100% 时,磁盘无法接受新的 I/O 请求
      • 注意:使用率和饱和度是完全不同的

      使用率只考虑有没有IO,不考虑IO的大小;当使用率是100%时,磁盘也可能接收新的IO请求

      sysstat提供了Linux性能监控的工具集

      【全局命令】 iostat

      - 查看系统综合的磁盘IO情况
      - iostat [参数] [时间] [次数]    ` iostat -p ALL -h`
      - 参数说明
      
      参数说明
      -c仅显示CPU状态统计信息
      -d仅显示磁盘统计信息
      -k 或 -m以Kb 或 Mb为单位显示,常用 -h 可读性高
      -p指定显示IO的设备,ALL表示显示所有
      -x显示详细信息

      显示信息,iostat不能直接得到磁盘饱和度

      Linux性能监控的工具集和分析命令工具详解

      字段说明
      【重要】r/s每秒发送给磁盘的读请求次数 , r/s+ w/s 是磁盘 IOPS
      【重要】w/s每秒发送给磁盘的写请求次数,r/s+ w/s 是磁盘 IOPS
      【重要】rkB/s每秒从磁盘读取的数据量,rkB/s+wkB/s 是吞吐量
      【重要】wkB/s每秒向磁盘写入的数据量,rkB/s+wkB/s 是吞吐量
      【重要】r_await读请求处理完成等待时间,包括在队列中的等待时间和设备实际处理时间

      r_await+w_await ,是RT响应时间

      【重要】w_await写请求处理完成等待时间,包括在队列中的等待时间和设备实际处理时间

      r_await+w_await ,是RT响应时间

      【重要】aqu-sz平均请求队列长度
      rareq-sz平均读请求大小
      wareq-sz平均写请求大小
      【重要】%util磁盘处理I/O的时间百分比,表示的是磁盘的忙碌情况;如果>80% 就是磁盘可能处于忙碌状态

      一秒中有百分之多少的时间用于I/O操作,或者说一秒中有多少时间I/O队列是非空的

      多核CPU监控的核心工具mpstat

      参数说明示例
      -P {cpu | ALL}指定要监控的CPU核心 cpu:CPU编号(从0开始) ALL:所有CPU核心mpstat -P 0 监控0号核心 mpstat -P ALL 监控所有核心
      间隔时间数据采集间隔(秒)mpstat 2 每2秒刷新一次
      次数采集次数,不指定则持续运行mpstat 2 5 每2秒采集,共5次
      -u显示CPU利用率(默认参数,通常省略)mpstat -u 1

      Linux性能监控的工具集和分析命令工具详解

      字段说明
      CPUCPU核心编号(all表示所有核心平均值)
      %usr用户态CPU时间(运行应用程序代码)
      %nice低优先级(nice值>0)用户进程CPU时间
      %sys内核态CPU时间(系统调用、内核线程)
      %iowaitCPU等待I/O完成的时间(重要!>5%需关注)
      %irq硬件中断处理时间
      %soft软中断处理时间(网络包处理、调度等)
      %steal虚拟化环境中被宿主机抢占的时间(>10%表示虚拟机竞争激烈)
      %guest运行虚拟CPU的时间(虚拟机客户机)
      %gnice低优先级虚拟CPU时间
      %idleCPU空闲时间(等待任务)

      进程级资源监控pidstat

      • 语法与参数
      pidstat [选项] [间隔时间] [次数]
      
      类别参数说明关键指标
      CPU监控-u进程CPU使用率(默认选项)%usr, %system, %CPU
      内存监控-r页错误与内存使用minflt/s, majflt/s, VSZ, RSS, %MEM
      I/O监控-d磁盘I/O统计kB_rd/s, kB_wr/s, kB_ccwr/s
      上下文切换-w进程编程上下文切换cswch/s, nvcswch/s
      进程筛选-p <PID>监控指定进程可指定多个PID,逗号分隔
      -p ALL监控所有进程
      线程监控-t显示线程详细信息TGID(线程组ID), TID(线程ID)
      命令显示-l显示完整命令行便于识别进程
      输出格式-h水平输出(无换行)便于脚本处理
      间隔控制间隔采样间隔(秒)如 1 表示1秒
      次数采样次数如 5 表示采样5次后退出

      监控所有进程的CPU使用率,每2秒刷新

      Linux性能监控的工具集和分析命令工具详解

      字段说明
      %usr进程在用户态的CPU使用率(运行应用程序代码)
      %system进程在内核态的CPU使用率(执行系统调用)
      %guest进程在虚拟机中运行的CPU使用率
      %wait进程等待运行的时间百分比(Linux 2.6.26+)
      %CPU进程总的CPU使php用率 = %usr + %system + %guest
      CPU进程最后运行的CPU核心编号

      磁盘IO常见指标和分析命令工具介绍

      局部命令iotop

      • 查看当前系统的各个进程 使用磁盘IO的情况
      • 安装 yum install -y iotop
      • iotop -o -d 3 每3秒刷新下各个进程磁盘IO情况

      参数

      参数说明
      -o只显示正在读写磁盘的程序
      -d跟一个数值,表示iotop命令刷新的时间

      Linux性能监控的工具集和分析命令工具详解

      字段说明
      Total DISK READ从磁盘中读取的总速率
      Total DISK WRITE往磁盘里写入的总速率
      Actual DISK READ从磁盘中读取的编程客栈实际速率
      Actual DISK WRITE往磁盘里写入的实际速率
      TID线程ID,按 p 可以转换成进程ID
      PRIO优先级
      USER线程所有者
      DISK READ进程从磁盘中读取的速率
      DISK WRITE进程往磁盘里写入的速率
      SWAPIN进程swap交换百分比
      IO>IO等待所占用的百分比
      COMMAND具体的进程命令

      总结

      • 【全局】iostat是系统级别的IO监控
      • 【局部】iotop是进程级别IO监控

      以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

      0

      上一篇:

      下一篇:

      精彩评论

      暂无评论...
      验证码 换一张
      取 消

      最新运维

      运维排行榜