Linux 命令:iotop

1. 写在前面

本文主要介绍 Linux iotopInput/Output top 命令:用于显示和监控磁盘 IO 使用详情,甚至获取进程现有 IO 使用情况。它是用 python 设计的,需要内核模块才能执行。系统管理员可以用它来追踪可能导致磁盘 I/O 读写量过高的特定进程。

它需要一个 python 解释器来执行。其输出结果与 top 命令类似。通常需要 root 权限才能执行。

关注 公众号 获取最新博文: 滑翔的纸飞机

2. iotop 命令

2.1 安装

  • CentOS/RHEL:
sudo yum install iotop
  • ubuntu:
sudo apt install iotop

2.2 使用 iotop 命令

命令参数

-o:只显示有io操作的进程;
-b:批量显示,无交互,主要用作记录到文件;
-n NUM:显示NUM次,主要用于非交互式模式;
-d SEC:间隔SEC秒显示一次;
-p PID:监控的进程pid;
-u USER:监控的进程用户;

iotop 常用快捷键

左右箭头:改变排序方式,默认是按IO排序;
r:改变排序顺序;
o:只显示有IO输出的进程;
p:进程/线程的显示方式的切换;
a:显示累积使用量;
q:退出;

输出详解

整体 IO 输出解释:

Total DISK READ
Total DISK WRITE 
表示了进程和内核线程之间的总的读写带宽,另一方面也表示内核块设备子系统的。Current DISK READ
Current DISK WRITE
表示在内核块设备子系统和下面硬件(HDD、SSD 等等)对应的实际磁盘 I/O 带宽。

进程 IO 输出解释:

TID                线程号或进程号
PRIO               线程运行时的I/O优先级
USER               进程所属用户
DISK READ          刷新时间间隔内读取数据量
DISK WRITE         刷新时间间隔内写入数据量
SWAPIN             每个进程的交换使用率
IO                 每个进程的 I/O 利用率,包含磁盘和交换
COMMAND            进程名字
2.2.1 获取进程列表及其当前磁盘 IO 使用情况
root@dev:~# sudo iotop
----------------------------------------------------------------------------
Total DISK READ:         0.00 B/s | Total DISK WRITE:         3.40 K/s
Current DISK READ:       0.00 B/s | Current DISK WRITE:      13.61 K/sTID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND                                                                                                                                                                      296 be/3 root        0.00 B/s    0.00 B/s  0.00 %  0.05 % [jbd2/vda1-8]2836 be/4 systemd-    0.00 B/s    3.40 K/s  0.00 %  0.03 % beam.smp -W w -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -P 1048~syslog_error_logger false -kernel prevent_overlapping_partitions false [3_dirty_io_sche]1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % init2 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/
... ...     keys:  any: refresh  q: quit  i: ionice  o: active  p: procs  a: accum                                                                                                                                                                      sort:  r: asc  left: SWAPIN  right: COMMAND  home: TID  end: COMMAND   

该命令将显示进程列表及其当前磁盘使用情况,并不断更新。

2.2.2 仅显示有 IO 操作的进程
root@dev:~# sudo iotop -o
----------------------------------------------------------------------------
Total DISK READ:         0.00 B/s | Total DISK WRITE:         3.84 K/s
Current DISK READ:       0.00 B/s | Current DISK WRITE:      15.36 K/sTID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND                                                                                                                                                                      296 be/3 root        0.00 B/s    0.00 B/s  0.00 %  0.05 % [jbd2/vda1-8]2836 be/4 systemd-    0.00 B/s    3.84 K/s  0.00 %  0.03 % beam.smp -W w -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -P 1048~syslog_error_logger false -kernel prevent_overlapping_partitions false [3_dirty_io_sche]keys:  any: refresh  q: quit  i: ionice  o: all  p: procs  a: accum                                                                                                                                                                         sort:  r: asc  left: SWAPIN  right: COMMAND  home: TID  end: COMMAND 

这将显示当前正在执行 IO 的所有进程。

2.2.3 获取 iotop 的版本
root@dev:~# sudo iotop --version
----------------------------------------------------------------------------
iotop 0.6

显示当前安装的 iotop 工具版本。

2.2.4 显示帮助信息
root@dev:~# sudo 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-h, --help            show this help message and exit-o, --only            only show processes or threads actually doing I/O-b, --batch           non-interactive mode-n NUM, --iter=NUM    number of iterations before ending [infinite]-d SEC, --delay=SEC   delay between iterations [1 second]-p PID, --pid=PID     processes/threads to monitor [all]-u USER, --user=USER  users to monitor [all]-P, --processes       only show processes, not all threads-a, --accumulated     show accumulated I/O instead of bandwidth-k, --kilobytes       use kilobytes instead of a human friendly unit-t, --time            add a timestamp on each line (implies --batch)-q, --quiet           suppress some lines of header (implies --batch)--no-help             suppress listing of shortcuts

显示 iotop 工具的帮助信息。

2.2.5 以非交互模式显示输出
root@dev:~# sudo iotop -b
----------------------------------------------------------------------------
Total DISK READ:         0.00 B/s | Total DISK WRITE:         0.00 B/s
Current DISK READ:       0.00 B/s | Current DISK WRITE:       0.00 B/sTID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % init2 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-kbl
... ...

批量显示,无交互,主要用作记录到文件。

例如:

sudo iotop -b > iotop.txt
2.2.6 限制刷新时间间隔及次数
root@dev:~# sudo iotop -d 2 -n 3

限制 2s 刷新1次,刷新三次信息后结束。

2.2.7 指定进程 PID/ USER
  • 显示进程 1 IO使用情况:
root@dev:~# sudo iotop -p 1
----------------------------------------------------------------------------
Total DISK READ:         0.00 B/s | Total DISK WRITE:         0.00 B/s
Current DISK READ:       0.00 B/s | Current DISK WRITE:       0.00 B/sTID  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 % initkeys:  any: refresh  q: quit  i: ionice  o: active  p: procs  a: accum                                                                                                                                                                      sort:  r: asc  left: SWAPIN  right: COMMAND  home: TID  end: COMMAND   

显示 PID 为 1 的进程的 IO 使用情况。

  • 显示 root 用户下进程的 IO 信息:
root@dev:~# sudo  iotop -u root 
----------------------------------------------------------------------------
Total DISK READ:         0.00 B/s | Total DISK WRITE:        10.19 K/s
Current DISK READ:       0.00 B/s | Current DISK WRITE:      20.37 K/sTID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND                                                                                                                                                                      296 be/3 root        0.00 B/s   10.19 K/s  0.00 %  0.10 % [jbd2/vda1-8]1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % i
... ...      
2.2.8 累计显示 IO
root@dev:~# sudo iotop -a
----------------------------------------------------------------------------
Total DISK READ:         0.00 B/s | Total DISK WRITE:         0.00 B/s
Current DISK READ:       0.00 B/s | Current DISK WRITE:       0.00 B/sTID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND                                                                                                                                                                      296 be/3 root          0.00 B    196.00 K  0.00 %  0.05 % [jbd2/vda1-8]2839 be/4 systemd-      0.00 B     20.00 K  0.00 %  0.01 % beam.smp -W w -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -P 1048~syslog_error_logger false -kernel prevent_overlapping_partitions false [6_dirty_io_sche]2794 be/4 root         16.00 K     16.00 K  0.00 %  0.01 % minio server /data --console-address :42115 --address :90002797 be/4 root         20.00 K      8.00 K  0.00 %  0.00 % minio server /data --console-address :42115 --address :90002897 be/4 root          0.00 B   1992.00 K  0.00 %  0.00 % minio server /data --console-address :42115 --address :9000
... ...keys:  any: refresh  q: quit  i: ionice  o: active  p: procs  a: bandwidth        

以累计方式显示信息,数据从 iotop 命令启动开始做计算。

2.2.9 添加时间
root@dev:~# sudo iotop -t
----------------------------------------------------------------------------
00:17:42 Total DISK READ:         0.00 B/s | Total DISK WRITE:         0.00 B/s
00:17:42 Current DISK READ:       0.00 B/s | Current DISK WRITE:       0.00 B/sTIME    TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND
00:17:42       1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % init
00:17:42       2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]
00:17:42       3 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [rcu_gp]
00:17:42       4 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [rcu_par_gp]
00:17:42       6 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/0:0H-kblockd]

这将在输出的每一行添加时间。

2.2.10 列标题打印限制
  • 列标题只在第一次迭代时打印
root@dev:~# sudo iotop -q
----------------------------------------------------------------------------
Total DISK READ:         0.00 B/s | Total DISK WRITE:         0.00 B/s
Current DISK READ:       0.00 B/s | Current DISK WRITE:       0.00 B/sTID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % init2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]
... ...
  • 不打印列标题
root@dev:~# sudo iotop -qq
----------------------------------------------------------------------------
Total DISK READ:         0.00 B/s | Total DISK WRITE:         0.00 B/s
Current DISK READ:       0.00 B/s | Current DISK WRITE:       0.00 B/s1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % init2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]
... ...      
  • 不会打印 I/O 摘要
root@dev:~# iotop -qqq 
----------------------------------------------------------------------------1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % init2 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]
2.2.11 以 kB 单位显示读写数据信息
root@dev:~# iotop -k
----------------------------------------------------------------------------
Total DISK READ:         0.00 K/s | Total DISK WRITE:         0.00 K/s
Current DISK READ:       0.00 K/s | Current DISK WRITE:       0.00 K/sTID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN     IO>    COMMAND                                                                                                                                                                      1 be/4 root        0.00 K/s    0.00 K/s  0.00 %  0.00 % init2 be/4 root        0.00 K/s    0.00 K/s  0.00 %  0.00 % [kthreadd]3 be/0 root        0.00 K/s    0.00 K/s  0.00 %  0.00 % [rcu_gp]4 be/0 root        0.00 K/s    0.00 K/s  0.00 %  0.00 % [rcu_par_gp]
感谢您花时间阅读文章!
关注公众号不迷路!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/850016.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vite+vue+ts项目中报错解决方案

1.vitevue3ts项目中提示无法找到模块 一.首先产生这个错误是:无法找到模块XXX,并且提示XXX is declared but its value is never read 二. 产生这个问题的原因是我们使用了ts语法,他只能识别.ts文件,并不…

4、js数据类型,检测数据类型

一、js数据类型 基本(简单、原始)数据类型:number/string/boolean/undefined/null/symbol/bigint引用(复杂)数组类型:object(function,array,date) 1、symbol是什么&…

javaweb学习(day14-ThreadLocal文件上传下载)

一、线程数据共享和安全 -ThreadLocal 1 什么是 ThreadLocal ThreadLocal 的作用,可以实现在同一个线程数据共享, 从而解决多线程数据安全问题. ThreadLocal 可以给当前线程关联一个数据(普通变量、对象、数组)set 方法 [源码!] ThreadLocal 可以像 Map 一样存取数…

[知识点]c++运算符重载

在 C 中,运算符重载(Operator Overloading)允许你定义或修改运算符的行为,使其适用于用户定义的类型(例如类或结构体)。通过运算符重载,你可以使自定义类型与内置类型一样自然地使用运算符。 重…

大模型的 Embedding 模型该如何进行微调?

节前,我们星球组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学. 针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 汇总合集&…

Vue的基础知识:v-model的原理,由:value与@input合写。

原理:v-model本质上是一个语法糖,比如应用在输入框上,就是value属性和input事件的合写。(补充说明:语法糖就是语法的简写) 作用:提供数据的双向绑定 1.数据变,视图(也就…

[数据集][目标检测]叶子计数检测数据集VOC+YOLO格式240张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):240 标注数量(xml文件个数):240 标注数量(txt文件个数):240 标注类别…

2024年谷歌SEO如何快速出排名效果抢占首页制高点?

2024年,随着谷歌搜索引擎算法的不断更新,SEO策略也需要与时俱进才能快速出排名。本文将结合谷歌最新SEO趋势,平哥SEO分享一些实操性的快速排名技巧,帮助你在竞争激烈的搜索结果中脱颖而出。 额外话题:就是通过微信公众…

break、continue、return

break 程序示例: // 产生一个位于 [1, 100] 范围内的随机数,统计产生 100 所需要的次数 public static void main(String[] args) {// System.out.println(Math.random()); // [0,1)// System.out.println(Math.random() * 100); // [0,100)// Syste…

什么是XSS攻击?什么是SQL注入攻击?什么是CSRF攻击?

XSS攻击、SQL注入攻击和CSRF攻击是三种常见的网络安全威胁,它们分别针对不同的应用层面和安全漏洞。以下是对这三种攻击方式的详细介绍: 1. XSS攻击(跨站脚本攻击,Cross-Site Scripting) 业务场景: 用户…

Java Web学习笔记25——Vue组件库Element

什么是Element? Element: 是饿了么团队研发的,一套为开发者、设计师和产品经理准备的基于Vue2.0的桌面端组件库。 组件:组成网页的部件,例如:超链接、按钮、图片、表格、表单、分页条等等。 官网:https:…

C++设计模式---工厂模式

C中工厂模式是一种创建型设计模式,它允许客户端代码通过调用工厂方法来创建对象,而无需直接使用new运算符实例化具体类。这种模式有助于将类的创建与使用相分离,并且在需要添加新的具体类时可以减少对客户端代码的影响。 工厂模式通常有两种实…

深拷贝、浅拷贝、引用拷贝

深拷贝和浅拷贝的区别 1. 引用拷贝2. 对象拷贝 1. 引用拷贝 两个对象指向同一个地址值。 创建一个指向对象的引用变量的拷贝Teacher teacher new Teacher("Taylor",26); Teacher otherteacher teacher; System.out.println(teacher); System.out.println(otherte…

cocos入门8:向量叉乘

在cocos creator中,向量叉乘(Cross Product)是一个重要的概念,主要用于3D图形学中的方向计算和法线计算。叉乘的结果是一个垂直于两个输入向量的新向量,其长度等于输入向量围成的平行四边形的面积。以下是对向量叉乘的…

前端多人项目开发中,如何保证CSS样式不冲突?

在前端项目开发中,例如突然来了一个大项目,很可能就需要多人一起开发,领导说了,要快,要快,要快,你们给我快。然后下面大伙就一拥而上,干着干着发现,一更新代码&#xff0…

【AI论文与新生技术】Follow-Your-Emoji:精细可控且富有表现力的自由式人像动画技术

我们提出了 Follow-Your-Emoji,这是一种基于扩散的肖像动画框架,它使用目标地标序列对参考肖像进行动画处理。肖像动画的主要挑战是保留参考肖像的身份并将目标表情转移到该肖像,同时保持时间一致性和保真度。为了应对这些挑战,Fo…

JFinal学习07 控制器——接收数据之getBean()和getModel()

JFinal学习07 控制器——接收数据之getBean()和getModel() 视频来源https://www.bilibili.com/video/BV1Bt411H7J9/?spm_id_from333.337.search-card.all.click 文章目录 JFinal学习07 控制器——接收数据之getBean()和getModel()一、接收数据的类型二、getBean()和getModel()…

GDPU JavaWeb Ajax请求

异步请求可以提升用户体验并优化页面性能。 ajax登录 实现ajax异步登录。 注意,ajax用到了jQuery库,先下载好相应的js库,然后复制导入到工程的web目录下,最好与你的前端页面同一层级。然后编写时路径一定要找准,“pag…

WinRAR安装教程

WinRAR安装教程 1. 下载WinRAR 访问官方网站:打开浏览器,访问WinRAR的官方网站(如:www.winrar.com.cn)。选择版本:根据您的操作系统(32位或64位)选择合适的WinRAR版本。下载软件&a…

转让北京公司带旅行许可证流程和要求

旅行社是开展旅游服务业务的专项经济主体,旅行社开展相关业务必须持有旅行社业务经营许可证。该资质又分为国内旅行社经营许可证和出境旅行社经营许可证。主要区别在于能否开展出境旅游业务,下面老耿带大家了解,新成立国内旅行社要求及出境旅…