【Linux资源管理】iotop命令监控磁盘使用情况

一、iotop工具介绍

I/O可谓是数据库\服务器的最大瓶颈问题了,在使用top、nmon、zabbix、sar等工具监控I/O时,要么没有I/O监控(如top、zabbix),要么仅仅监控到磁盘层面(如nmon、sar)。然而,当服务器出现问题时,我们更想了解的是哪个进程占用了较多的I/O,这种情况下就可以使用iotop命令来监控。

redhat linux 5.5自带了iotop工具,无需手动安装。查看是否安装了iotop工具:

[root@OCP ~]# which iotop
/usr/sbin/iotop

如果要了解iotop如何使用,可以使用man命令:

[root@OCP ~]# man iotop

 

二、iotop工具用法

iotop [-选项]

选项有:

选项 解释 示例
-o 只显示有I/O操作的进程或线程,即存在disk read或disk write。 iotop -o
-b 批量显示,无交互,主要用于记录到文件 iotop -b >> iotop.txt
-n NUM 显示NUM次,主要用于非交互模式 iotop -b -n 3 >> iotop.txt
-d SEC 间隔SEC秒更新一次数据,默认1s iotop –d 5
-p PID 列出监控的进程,默认全部 iotop –p 3313(仅监控3313进程)
-u USER 列出需要监控的用户,默认所有用户 iotop –u oracle
   

 

iotop的快捷键:

左右箭头:改变排序,默认按照IO使用百分比排序

r         :反转排序结果

o        :只显示有I/O的进程和线程

a        :显示累积使用量

q        :退出

 

三、iotop工具展示

image

第一行是总的I/O统计信息,描述总的I/O读写情况。

第二行是列名称,从左到右依次是:

TID  :线程编号

PRIO :未知

USER:用户信息

DISK READ  :磁盘读,以对用户友好的方式显示

DISK WRITE:磁盘写,以对用户友好的方式显示

SWAPIN     : swap空间使用百分比

IO>           :IO使用百分比,“>”代表以IO排序,可以使用左右光标键调整使用哪一列来排序

COMMAND  :进程发起程序名

 

四、iotop使用测试

(1)写数据模拟

image

往数据库插入大量数据测试,可以看到,此时lgwr进程与dbwn还有arch进程磁盘写非常的高。但是无法看到用户进程信息。

(2)读数据模拟

对无索引的大表(2千万行)进行查询。SELECT * FROM   lijiaman.t_iotop  a WHERE  a.t_name = 'M';

image

可以看到用户进程消耗的IO非常的高,LOCAL=NO是oracle的直连用户进程。

 

【完】

posted @   gegeman  阅读(1963)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示