Linux 性能分析工具汇总之iotop–LINUX进程实时IO监控工具

介绍

Linux下的IO统计工具如iostat, nmon等大多数是只能统计到per设备的读写情况, 如果你想知道每个进程是如何使用IO的就比较麻烦.

iotop 是一个用来监视磁盘 I/O 使用状况的 top 类工具。iotop 具有与 top 相似的 UI,其中包括 PID、用户、I/O、进程等相关信息。

iotop命令是专门显示硬盘IO的命令,界面风格类似top命令,可以显示IO负载具体是由哪个进程产生的。是一个用来监视磁盘I/O使用状况的top类工具,具有与top相似的UI,其中包括PID、用户、I/O、进程等相关信息。

实例

直接运行就好

iotop

输出如下

[root@k8s-master01 oracle]# iotop
Total DISK READ :   0.00 B/s | Total DISK WRITE :      83.74 K/s
Actual DISK READ:   0.00 B/s | Actual DISK WRITE:      83.74 K/s
    TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND                                                                                                                       
 262357 be/4 root        0.00 B/s   30.45 K/s  0.00 %  5.01 % etcd --advertise-client-urls=https://172.25.42.235:2379 --cert-f~ot-count=10000 --trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt
1180158 be/4 1001        0.00 B/s   30.45 K/s  0.00 %  4.00 % ora_ckpt_xe
 262339 be/4 root        0.00 B/s   19.03 K/s  0.00 %  1.53 % etcd --advertise-client-urls=https://172.25.42.235:2379 --cert-f~ot-count=10000 --trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt
 262624 be/4 root        0.00 B/s    3.81 K/s  0.00 %  0.25 % etcd --advertise-client-urls=https://172.25.42.235:2379 --cert-f~ot-count=10000 --trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt
      1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % systemd --switched-root --system --deserialize 17
​

只显示有IO输出的进程

o键是只显示有IO输出的进程

[root@k8s-master01 oracle]# iotop -o
Total DISK READ :   0.00 B/s | Total DISK WRITE :      49.52 K/s
Actual DISK READ:   0.00 B/s | Actual DISK WRITE:      57.14 K/s
    TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND                                                                                                                       
 262354 be/4 root        0.00 B/s   38.09 K/s  0.00 %  4.38 % etcd --advertise-client-urls=https://172.25.42.235:2379 --cert-f~ot-count=10000 --trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt
 262337 be/4 root        0.00 B/s    3.81 K/s  0.00 %  1.41 % etcd --advertise-client-urls=https://172.25.42.235:2379 --cert-f~ot-count=10000 --trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt
2063621 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.30 % [kworker/0:1-events_power_efficient]

通过输出结果,我们可以清楚地知晓是什么程序在读写磁盘,速度以及命令行,pid 等信息。

参数说明

[root@k8s-master01 oracle]# iotop -h
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
  --version #显示版本号
  
  -h, --help            show this help message and exit
  -h, --help #显示帮助信息
  
  -o, --only            only show processes or threads actually doing I/O
  -o, --only #显示进程或者线程实际上正在做的I/O,而不是全部的,可以随时切换按o
  
  -b, --batch           non-interactive mode
  -b, --batch #运行在非交互式的模式
  
  -n NUM, --iter=NUM    number of iterations before ending [infinite]
  -n NUM, --iter=NUM #在非交互式模式下,设置显示的次数
​
  -d SEC, --delay=SEC   delay between iterations [1 second]
  -d SEC, --delay=SEC #设置显示的间隔秒数,支持非整数值
  
  -p PID, --pid=PID     processes/threads to monitor [all]
  -p PID, --pid=PID #只显示指定PID的信息
  
  -u USER, --user=USER  users to monitor [all]
  -u USER, --user=USER #显示指定的用户的进程的信息
  
  -P, --processes       only show processes, not all threads
  -P, --processes #只显示进程,一般为显示所有的线程
  
  -a, --accumulated     show accumulated I/O instead of bandwidth
  -a, --accumulated #显示从iotop启动后每个线程完成了的IO总数
  
  -k, --kilobytes       use kilobytes instead of a human friendly unit
  -k, --kilobytes #以千字节显示
  
  -t, --time            add a timestamp on each line (implies --batch)
  -t, --time #在每一行前添加一个当前的时间
  
  -q, --quiet           suppress some lines of header (implies --batch)
  

已上就是Linux 性能分析工具汇总之LINUX进程实时IO监控工具使用过程,觉得有用就给个赞吧

版权声明:本文为作者原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原创文章,作者:老C,如若转载,请注明出处:https://www.code404.icu/326.html

发表评论

登录后才能评论