Linux系统之iotop命令的基本使用

发布于:2024-11-29 ⋅ 阅读:(17) ⋅ 点赞:(0)

在这里插入图片描述

一、iotop命令介绍

iotop 是一个类似于 top 的命令行工具,但它专注于显示实时的磁盘I/O使用情况。这个工具可以帮助你找出哪些进程正在大量地读写磁盘,对于诊断系统性能问题非常有用,特别是在磁盘I/O成为瓶颈时。

二、iotop命令的使用帮助

2.1 安装iotop

如果系统上没有安装iotop工具,则执行以下命令进行安装。

apt install iotop -y

在这里插入图片描述

2.2 iotop命令help帮助信息

在命令行终端中,我们使用--help查询iotop命令的基本帮助信息。

root@jeven01:~# iotop --help
Usage: /usr/sbin/iotop [OPTIONS]

DISK READ and DISK WRITE are the block I/O bandwidth used during the sampling
period. SWAPIN and IO are the percentages of time the thread spent respectively
while swapping in and waiting on I/O more generally. PRIO is the I/O priority
at which the thread is running (set using the ionice command).

Controls: left and right arrows to change the sorting column, r to invert the
sorting order, o to toggle the --only option, p to toggle the --processes
option, a to toggle the --accumulated option, i to change I/O priority, q to
quit, any other key to force a refresh.

Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -o, --only            only show processes or threads actually doing I/O
  -b, --batch           non-interactive mode
  -n NUM, --iter=NUM    number of iterations before ending [infinite]
  -d SEC, --delay=SEC   delay between iterations [1 second]
  -p PID, --pid=PID     processes/threads to monitor [all]
  -u USER, --user=USER  users to monitor [all]
  -P, --processes       only show processes, not all threads
  -a, --accumulated     show accumulated I/O instead of bandwidth
  -k, --kilobytes       use kilobytes instead of a human friendly unit
  -t, --time            add a timestamp on each line (implies --batch)
  -q, --quiet           suppress some lines of header (implies --batch)
  --no-help             suppress listing of shortcuts

2.3 iotop命令选项解释

选项 描述
--version 显示程序版本号并退出
-h, --help 显示此帮助消息并退出
-o, --only 仅显示实际进行I/O操作的进程或线程
-b, --batch 非交互模式
-n NUM, --iter=NUM 在结束前迭代次数 [无限]
-d SEC, --delay=SEC 迭代之间的延迟时间 [1秒]
-p PID, --pid=PID 要监控的进程/线程ID [全部]
-u USER, --user=USER 要监控的用户 [全部]
-P, --processes 仅显示进程,不显示所有线程
-a, --accumulated 显示累积I/O而不是带宽
-k, --kilobytes 使用千字节而不是友好的单位
-t, --time 在每行添加时间戳 (隐含了 --batch)
-q, --quiet 抑制部分头部行 (隐含了 --batch)
--no-help 抑制快捷键列表

三、 iotop命令的基本使用

直接在命令行,使用iotop命令,可以看到如下效果。默认情况下,iotop 需要以root权限运行才能查看所有进程的I/O活动。

 iotop

在这里插入图片描述

  • 控制命令
按键 功能描述
左右箭头 改变排序列
r 反转排序顺序
o 切换 --only 选项
p 切换 --processes 选项
a 切换 --accumulated 选项
i 更改I/O优先级 (使用 ionice 命令设置)
q 退出
任意其他键 强制刷新屏幕

输出解释

  • TID:线程ID
  • PRIO:I/O优先级(通过 ionice 命令设置)
  • USER:进程所属用户
  • DISK READ:采样期间使用的块I/O读取带宽
  • DISK WRITE:采样期间使用的块I/O写入带宽
  • SWAPIN:进程交换到内存中的百分比
  • IO>:线程等待I/O的时间百分比
  • COMMAND:进程名/命令行

四、iotop使用注意事项

  • 以root权限运行:为了查看所有进程的I/O活动,通常需要以root用户身份运行 iotop
  • 安装内核模块:确保系统上已加载了 CONFIG_TASK_DELAY_ACCTCONFIG_TASK_IO_ACCOUNTING 内核配置选项,否则 iotop 可能无法正常工作。
  • 注意性能影响:频繁地刷新或设置较短的延迟时间可能会对系统性能产生轻微的影响,特别是在繁忙的系统上。
  • 结合其他工具使用:将 iotoptop, htop, 或 vmstat 等其他系统监控工具结合使用,可以提供更全面的系统性能视图。
  • 理解输出数据:熟悉各个列的意义,如DISK READ, DISK WRITE, SWAPIN, 和 IO%,以便准确解读I/O活动。
  • 使用适当的选项:根据需求选择合适的命令行选项,例如使用 -o 仅显示有I/O活动的进程,或使用 -a 显示累积I/O量。
  • 定期更新 iotop:保持 iotop 软件包的最新状态,以获得最新的功能和安全更新。
  • 非交互模式记录:在进行长时间监控或日志记录时,考虑使用 -b 选项进入批处理模式,并可能结合 -n-d 来控制迭代次数和延迟时间。
  • 检查系统负载:在高负载情况下,某些I/O操作可能被延迟,因此要结合CPU、内存等其他资源的使用情况来综合判断。
  • 关注特定进程:如果需要监控特定进程的I/O活动,可以使用 -p 选项指定PID,或者使用 -u 选项指定用户名来限制监控范围。