1. 为什么我们需要关注磁盘 I/O?
在服务器运维和性能调优过程中,CPU和内存监控往往最先引起注意,但磁盘I/O才是许多性能问题的隐形杀手。当系统出现响应迟缓、服务超时等问题时,iotop就像一台X光机,能让我们直接观察到每个进程的磁盘读写活动。
我曾在一次线上事故排查中,发现一个看似CPU占用高的服务,实际瓶颈却是磁盘I/O。当时用常规的top命令根本找不到症结,直到使用iotop才发现有个日志收集进程正在疯狂写盘。这种场景下,iotop的价值就凸显出来了。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. iotop工具深度解析
2.1 安装与基础使用
主流Linux发行版安装命令:
bash复制# Debian/Ubuntu
sudo apt install iotop
# RHEL/CentOS
sudo yum install iotop
# Arch Linux
sudo pacman -S iotop
启动基础监控:
bash复制sudo iotop
注意:必须使用root权限运行,否则无法获取完整的进程I/O信息
典型输出示例:
code复制Total DISK READ: 5.34 M/s | Total DISK WRITE: 2.15 M/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
4564 be/4 mysql 4.12 M/s 0.00 B/s 0.00 % 85.21 % mysqld --daemon
2312 be/4 postgres 1.22 M/s 1.15 M/s 0.00 % 12.45 % postgres: writer process
2.2 关键参数详解
- 只显示实际有I/O操作的进程:
bash复制sudo iotop -o
- 批量模式(适合记录到文件):
bash复制sudo iotop -b -n 5 > iotop.log
- 监控特定进程:
bash复制sudo iotop -p $(pgrep mysql)
- 刷新间隔调整(默认1秒):
bash复制sudo iotop
