Iotop-如何在Linux中监视磁盘IO
Iotop工具是一个免费的开源免费工具,用于监视Linux中的磁盘输入/输出(IO)使用情况。
它可以帮助系统管理员找到消耗更多磁盘使用量的特定进程,并有助于进行性能分析。
2.6.20内核支持Iotop工具。
本教程说明了如何在Linux中安装和使用iotop。
准备工作
Iotop安装需要低于最低版本的python和内核。
Python> = 2.7
Linux内核≥2.6.20
在Linux上安装iotop
让我们检查一下如何在CentOS,Ubuntu,Fedora,Debian和Linux Mint上安装iotop。
在Ubuntu,Debian和Linux Mint上
#sudo apt-get install iotop
在CentOS,Fedora和RHEL上
#sudo yum -y install iotop or #sudo dnf install iotop
另一种选择是通过下载gzipped或者bzipped文件并解压缩从源代码进行安装。
然后使用“ setup.py”文件进行安装。
Iotop是用Python编写的,它是iotop安装的准备工作。
使用以下命令解压缩并安装iotop:
# tar -xjvf iotop-0.4.4.tar.bz2 # cd iotop-0.4.4/ # ./setup.py install
iotop用法
iotop命令必须以root用户身份运行。
以普通用户身份运行此命令时,会出现以下错误:
$iotop Netlink error: Operation not permitted (1) iotop requires root or the NET_ADMIN capability.
缺省情况下,iotop是一个交互式命令,如top命令。
输出示例:
Total DISK READ : 0.00 B/s | Total DISK WRITE : 0.00 B/s Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 0.00 B/s TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND 1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % systemd --switched-root --system --deserialize 17 2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd] 3 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcu_gp] 4 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcu_par_gp] 6 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/0:0H-kblockd] 8 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [mm_percpu_wq] 9 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/0] 10 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcu_sched] 11 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/0] 12 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [watchdog/0] 13 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [cpuhp/0] 15 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kdevtmpfs] 16 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [netns] 17 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kauditd] 18 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [khungtaskd] 19 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [oom_reaper] 20 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [writeback] 21 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kcompactd0] 22 be/5 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksmd] 23 be/7 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [khugepaged] 24 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [crypto]
在此输出的最顶部,第一行分为两列。
第一列显示“磁盘读取总数”,第二列显示“每秒磁盘写入总数”。
以下各行对应于执行IO操作的每个进程。
它列出了系统中每个进程的进程ID,用户所有权,磁盘读取,磁盘写入,进程名称,交换(交换每个进程的使用情况)。
如果要仅列出实际上正在执行任何磁盘I/O操作的活动进程,请在iotop运行时按o(以进行切换),或者使用“ -o”选项(iotop -o)运行iotop。
Total DISK READ : 0.00 B/s | Total DISK WRITE : 3.97 K/s Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 59.50 K/s TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND 1240 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.02 % rsyslogd -n [rs:main Q:Reg] 400 be/3 root 0.00 B/s 0.00 B/s 0.00 % 0.01 % [jbd2/sda-8] 1236 be/4 root 0.00 B/s 3.97 K/s 0.00 % 0.00 % rsyslogd -n [in:imjournal]
我们可以通过按'q'从iotop像top一样退出。
运行任何io密集进程(例如iozone)时,跟随输出。
Total DISK READ: 123.96 K/s | Total DISK WRITE: 14.16 M/s TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND 468 be/3 root 0.00 B/s 104.59 K/s 0.00 % 56.66 % [jbd2/sda8-8] 7083 be/4 root 0.00 B/s 13.80 M/s 0.00 % 36.45 % ./iozone -a 5568 be/4 igi 123.96 K/s 0.00 B/s 0.00 % 0.00 % totem /home/igi/Downloads/01 - Harjinder Singh - Mere Ram Rai.mp3
iotop选项
如上所述,“-o”选项列出了实际执行磁盘I/O的进程。
“ -b”选项在非交互式批处理模式下运行iotop。
它可以用于记录目的。
'-n'选项指示批处理模式要执行的迭代次数:
# iotop -b -n1 Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/s TID PRIO USER DISK READ DISK WRITE SWAPIN IO COMMAND 1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % init 2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd] 3 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/0] 2052 be/4 rtkit 0.00 B/s 0.00 B/s 0.00 % 0.00 % rtkit-daemon 2053 be/4 rtkit 0.00 B/s 0.00 B/s 0.00 % 0.00 % rtkit-daemon 6 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/0] 7 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [watchdog/0] 8 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/1] 2057 be/4 igi 0.00 B/s 0.00 B/s 0.00 % 0.00 % gconfd-2 10 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/1] 11 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [watchdog/1] ---Output Truncated--
'-u'选项显示特定用户的进程。
# iotop -u igi Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/s TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND 2057 be/4 igi 0.00 B/s 0.00 B/s 0.00 % 0.00 % gconfd-2 2081 be/4 igi 0.00 B/s 0.00 B/s 0.00 % 0.00 % gvfs-afc-volume-monitor 2082 be/4 igi 0.00 B/s 0.00 B/s 0.00 % 0.00 % caja 2139 be/4 igi 0.00 B/s 0.00 B/s 0.00 % 0.00 % clock-applet 2084 be/4 igi 0.00 B/s 0.00 B/s 0.00 % 0.00 % matecomponent-activation-server --ac-activate --ior-output-fd=18 2087 be/4 igi 0.00 B/s 0.00 B/s 0.00 % 0.00 % mate-bluetooth-applet 2088 be/4 igi 0.00 B/s 0.00 B/s 0.00 % 0.00 % mate-volume-control-applet 7247 be/4 igi 0.00 B/s 0.00 B/s 0.00 % 0.00 % chromium-browser --disable-new-tab-first-run --enable-user-scripts 2055 be/4 igi 0.00 B/s 0.00 B/s 0.00 % 0.00 % gconf-helper
'-d'选项设置迭代之间的延迟。
# iotop -d 3
最后,“-version”选项显示iotop的版本号。
# iotop --version iotop 0.4.4
iotop关键字快捷方式
让我们检查一些有用的关键字快捷方式,以使用iotop。
向左或者向右移动箭头键可更改排序。
-h:选项以查看用法信息。
-r:选项以反转排序顺序。
-o:用于检查进程或者线程的选项。
-b:启用非交互模式以启用日志记录I/O使用情况的选项。
-p:PID列出要监视的所有进程/线程。
-u:USER选项列出所有要监视的用户。
-P:仅列出进程的选项。
通常,iotop显示所有线程。
-a:用于检查累积的I/O而不是带宽的选项。