Linux性能查看分析工具简介

admin 2022年11月18日 362次浏览

1、iostat

iostat 命令用于监控系统输入/输出设备的负载,其通过观察设备相对于其平均传输速率的活动时间实现。iostat 命令生成的报告可用于更改系统配置,以更好地平衡物理磁盘之间的输入/输出负载

iostat 命令生成的第一个报告提供了自系统启动以来的统计信息,每份后续报告涵盖自上一份报告以来的时间。每次运行 iostat 命令时,都会报告所有统计信息。该报告由一个 CPU 标题行和一行 CPU 统计信息组成。在多处理器系统上,CPU 统计数据是作为所有处理器的平均值在系统范围内进行计算的

1.1、安装

yum install sysstat

1.2、语法

iostat [-c] [-d] [-h] [-k|-m] [-N] [-t] [interval [count]]

1.3、常用选项

-c:显示CPU利用

-d:显示设备利用率

-h:使用易读的方式显示数据

-k:以KB为单位显示统计信息

-m:以MB为单位显示统计信息

-N:显示设备名称

-t:显示每个报告的时间

-x:显示扩展统计信息

interval:刷新间隔时间

count:输出报告数量

1.4、使用示例

# 显示所有CPU和设备报告
[root@test-host ~]# iostat
Linux 3.10.0-1160.76.1.el7.x86_64 (test-host)   2022年11月18日  _x86_64_        (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.25    0.00    0.39    0.01    0.00   99.35

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               1.59        30.74        26.73     167732     145833
dm-0              1.23        28.31        25.98     154435     141737
dm-1              0.02         0.40         0.00       2204          0
dm-2              0.02         0.21         0.38       1119       2048

# 连续显示所有设备报告信息,间隔为2秒
iostat -d 2

# 间隔为2秒,一共输出3次所有设备报告信息
iostat -d 2 3

# 间隔为2秒,一共输出3次指定设备扩展报告信息
[root@test-host ~]# iostat -x sda 2 3
Linux 3.10.0-1160.76.1.el7.x86_64 (test-host)   2022年11月18日  _x86_64_        (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.23    0.00    0.37    0.01    0.00   99.39

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     0.04    1.23    0.26    28.79    25.07    72.09     0.00    0.91    0.69    1.96   0.58   0.09

1.5、输出信息介绍

  • CPU利用率报告

    字段 描述
    %user 显示在用户级别(应用程序)执行时出现的CPU利用率百分比
    %nice 显示设置过优先级的用户级别执行时出现的CPU利用率百分比
    %system 显示在系统级(内核)执行时CPU利用率的百分比
    %iowait 显示系统有未完成的磁盘I/O请求时CPU空闲的时间百分比 (重点关注)
    %steal 显示虚拟机管理程序为另一个虚拟处理器提供服务时,虚拟CPU在非自愿等待中所花费的时间百分比
    %idle 显示一个或多个CPU空闲并且系统没有未完成的磁盘I/O请求的时间百分比
  • 设备利用率报告

    字段 描述
    rrqm/s 每秒合并到设备队列中的读取请求数
    wrqm/s 每秒合并到设备队列中的写入请求数
    r/s 设备每秒完成的读取请求数
    w/s 设备每秒完成的写入请求数
    rkB/s 每秒从设备读取的扇区数(KB)
    wkB/s 每秒写入设备的扇区数(KB)
    avgrq-sz 向设备发出的请求的平均大小
    avgqu-sz 向设备发出的请求的平均队列长度
    await 向设备发出的I/O请求得到服务的平均时间(毫秒)
    r_await 向设备发出的读取请求得到服务的平均时间(以毫秒计)
    w_await 向设备发出的写入请求得到服务的平均时间(以毫秒计)
    %util 向设备发出I/O请求所用时间的百分比。当该值接近100%时,说明设备出现性能瓶颈

2、iotop

2.1、简介

iotop 监控 Linux 内核输出的 I/O 使用信息,并显示系统上进程或线程的当前 I/O 使用情况表。iotop 显示采样期间每个进程/线程读写的 I/O 带宽的列,以及线程/进程写入和等待 I/O 的时间百分比

2.2、语法

iotop [OPTIONS]

2.3、常用选项

-o:仅显示实际执行I/O的进程或线程,而不是显示所有进程或线程

-b:打开非交互模式,用于记录一段时间内的I/O使用情况

-n NUM:执行NUM次后退出

-d SEC:设置刷新时间间隔

-p PID:要监控的进程/线程列表(默认情况下监控全部)

-u USER:要监控的用户列表(默认情况下全部)

-P:仅显示进程