iotop
是一个类似于 top
的工具,但专注于监控 Linux 系统中的磁盘 I/O 活动。它可以实时显示每个进程的磁盘读写情况,帮助系统管理员快速定位高 I/O 使用率的进程。
与传统的 top
或 htop
不同,iotop
提供了更详细的磁盘 I/O 相关信息,包括每个进程的读取和写入速度、总读取/写入量等。
sudo apt update
sudo apt install iotop
sudo yum install epel-release
sudo yum install iotop
sudo pacman -S iotop
安装完成后,需要以 root 权限运行 iotop
,因为它需要访问系统的 I/O 统计数据。
运行以下命令即可启动 iotop
:
sudo iotop
启动后,你会看到类似如下的输出:
Total DISK READ: 0.00 B/s | Total DISK WRITE: 128.00 K/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO COMMAND
12 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcu_preempt]
16 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/0]
123 be/4 root 0.00 B/s 128.00 K/s 0.00 % 0.00 % dd if=/dev/zero of=/tmp/test bs=1M count=1024
iotop
。假设我们怀疑某个进程正在占用大量磁盘资源,可以按照以下步骤操作:
sudo iotop
查看 DISK READ
和 DISK WRITE
列中数值较高的进程。例如,如果发现某个 dd
进程正在写入大量数据,可以进一步分析其行为。
通过 ps
或 lsof
查看该进程的详细信息:
ps aux | grep <PID>
lsof -p <PID>
其中 <PID>
是目标进程的 ID。
如果确认该进程导致系统性能下降,可以选择优化或终止它:
sudo kill -9 <PID>
除了 iotop
,还有其他工具可以帮助监控磁盘 I/O 性能:
iostat: 显示 CPU 使用率和磁盘 I/O 统计信息。
sudo apt install sysstat
sudo iostat -dx 1
pidstat: 显示单个进程的 I/O 统计信息。
sudo pidstat -d 1
dstat: 综合监控工具,支持 CPU、内存、磁盘和网络的实时统计。
sudo apt install dstat
sudo dstat --disk