linux命令---iotop

版权声明:本文为博主原创文章,码字不易,转载请标明出处。 https://blog.csdn.net/yue530tomtom/article/details/80346854

准备

检查是否有iotop命令,没有的话装一下,以centos为例:yum -y install iotop

iotop

iotop命令是一个用来监视磁盘I/O使用状况的top类工具,python 语言编写。根据Linux内核(需要2.6.20及以上)来监测I/O,并且能显示当前进程/线程的I/O使用率。

选项

更详细的选项描述,老规矩找man:man iotop

选项 描述
- -version 显示版本号然后退出
-h, - -help 显示帮助然后退出
-o, - -only 只显示正在产生I/O的进程或线程。除了传参,可以在运行过程中按o生效。
-b, - -batch 非交互模式,一般用来记录日志
-n NUM, - -iter=NUM 设置监测的次数,默认无限。在非交互模式下很有用
-d SEC, - -delay=SEC 设置每次监测的间隔,默认1秒,接受非整形数据例如1.1
-p PID, - -pid=PID 指定监测的进程/线程
-u USER, - -user=USER 显示指定的用户的进程的信息
-P, - -processes 仅显示进程,默认iotop显示所有线程
-a, - -accumulated 累积的I/O,更加利于查看问题,显示从iotop启动后每个线程完成了的IO总数
-k, - -kilobytes 使用kB单位,而不是对人友好的单位。在非交互模式下,脚本编程有用。
-t, - -time 加上时间戳,非交互非模式。
-q, - -quiet 禁止头几行,非交互模式。有三种指定方式。
-q 只在第一次监测时显示列名
-qq 永远不显示列名。
-qqq 永远不显示I/O汇总。

使用

  • 只显示产生io的进程
[root@db25440 ~]# iotop -o
Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND                                                                                                                              

也可以使用交互式模式,在运行过程中按下交互命令o

  • 使用非交互式执行
    输出滚动显示,无法执行交互命令,一般用来记录日志,ctrl+c结束
[root@db25440 ~]# iotop -b

Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND 
  ……                                                                                                                             

扩展
若不使用-b选项启动iotop,是可以交互的,可以在运行期间执行一些命令,如下:
|交互命令|描述|
|:-|:-|
|左右箭头|改变排序的列|
|r|反向排序,按io|
|o|切换至选项–only|
|p|切换至–processes选项|
|a|切换至–accumulated选项|
|q|退出 |
|i|改变线程的优先级|
交互模式下除了以上这些交互命令键之外的任意键都会强制刷新

  • 执行次数和执行频率
    使用非交互式,可以非常清晰看出一共监控几次,-n 2指监控2次,-d 5 表示5秒刷新一次
[root@db25440 ~]# iotop -b -n 2 -d 5
  • 执行指定pid和指定用户
    -p和-u参数
[root@db25440 ~]# iotop -b -n 2 -d 5 -p 25129 -u mysql
Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND
25129 be/4 mysql       0.00 B/s    0.00 B/s  0.00 %  0.00 % mysqld ……
Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND
25129 be/4 mysql       0.00 B/s    0.00 B/s  0.00 %  0.00 % mysqld ……
  • 打印时间戳和指定输出单位为kb
    看输出第一列的时间戳和 diskRead、diskWrite的单位由默认变为K
[root@db25440 ~]# iotop -b -n 2 -d 5 -p 25129 -u mysql -t -k
Total DISK READ: 0.00 K/s | Total DISK WRITE: 0.00 K/s
    TIME  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND
18:09:29 25129 be/4 mysql       0.00 K/s    0.00 K/s  0.00 %  0.00 % mysqld 
Total DISK READ: 0.00 K/s | Total DISK WRITE: 0.00 K/s
    TIME  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND
18:09:34 25129 be/4 mysql       0.00 K/s    0.00 K/s  0.00 %  0.00 % mysqld 
[root@db25440 ~]#
  • 静默输出
[root@db25440 ~]# iotop -b -n 2 -d 5 -p 25129 -u mysql -t -k -q
Total DISK READ: 0.00 K/s | Total DISK WRITE: 0.00 K/s
    TIME  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND
18:11:20 25129 be/4 mysql       0.00 K/s    0.00 K/s  0.00 %  0.00 % mysqld 
Total DISK READ: 0.00 K/s | Total DISK WRITE: 0.00 K/s
18:11:25 25129 be/4 mysql       0.00 K/s    0.00 K/s  0.00 %  0.00 % mysqld 
[root@db25440 ~]#
[root@db25440 ~]#
[root@db25440 ~]# iotop -b -n 2 -d 5 -p 25129 -u mysql -t -k -qq
Total DISK READ: 0.00 K/s | Total DISK WRITE: 0.00 K/s
18:11:32 25129 be/4 mysql       0.00 K/s    0.00 K/s  0.00 %  0.00 % mysqld 
Total DISK READ: 0.00 K/s | Total DISK WRITE: 0.00 K/s
18:11:37 25129 be/4 mysql       0.00 K/s    0.00 K/s  0.00 %  0.00 % mysqld 
[root@db25440 ~]#
[root@db25440 ~]#
[root@db25440 ~]# iotop -b -n 2 -d 5 -p 25129 -u mysql -t -k -qqq
18:11:39 25129 be/4 mysql       0.00 K/s    0.00 K/s  0.00 %  0.00 % mysqld 
18:11:44 25129 be/4 mysql       0.00 K/s    0.00 K/s  0.00 %  0.00 % mysqld 
[root@db25440 ~]# 
阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页