Linux 查看 IO 状态的常用命令

Linux 查看 IO 状态的常用命令

介绍下Linux的3个常用I/O相关命令,解决I/O压力过大问题时用iostat,查看磁盘的I/O状态用iotop,查看I/O进程排名用lsof

一、iostat

iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。要想使用iostat命令,需要安装sysstat软件

[root@localhost ~]# yum -y install sysstat

[root@localhost ~]# iostat

Linux 5.14.0-162.6.1.el9_1.x86_64 (localhost.localdomain) 12/02/22 _x86_64_ (2 CPU)

avg-cpu: %user %nice %system %iowait %steal %idle

1.75 0.02 5.84 0.60 0.00 91.79

Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd

dm-0 73.70 2078.84 358.65 0.00 162919 28107 0

dm-1 1.26 29.96 0.00 0.00 2348 0 0

nvme0n1 104.45 2809.71 385.01 0.00 220197 30173 0

sr0 1.03 40.12 0.00 0.00 3144 0 0

输出信息:

avg-cpu段

%user: 用户程序占用CPU的百分比

%nice: nice操作占用CPU的百分比

%system: 系统占用CPU的百分比

%iowait: CPU等待硬件I/O时占用CPU百分比

%idle: CPU空闲时间的百分比

Device段

tps: 每秒钟I/O请求数

kB_read /s: 每秒读取的块数

kB_wrtn/s: 每秒写入的块数

kB_read: 读入的块总数

kB_wrtn: 写入的块总数

常用参数

-c 仅显示CPU统计信息,与-d互斥

-d 仅显示磁盘统计信息,与-c互斥

-k 以K为单位显示每秒的磁盘请求数,默认单位块

-p 设备名 | ALL,只显示某个设备的信息,或者全部设备

-x 输出扩展信息

sec 间隔sec秒显示一次

二、iotop

iotop用来监视磁盘 I/O 使用状况的 top 类工具,具有与 top 相似的 UI,其中包括 PID、用户、I/O、进程等相关信息。iotop不是系统自带的命令,要想使用iotop命令,需要安装iotop软件。

[root@localhost ~]# yum -y install iotop

[root@localhost ~]# iotop

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> COMMAND

1 be/4 root 0.00 B/s 0.00 B/s systemd --switched-root --system --deserialize 28

2 be/4 root 0.00 B/s 0.00 B/s [kthreadd]

3 be/4 root 0.00 B/s 0.00 B/s [rcu_gp]

4 be/4 root 0.00 B/s 0.00 B/s [rcu_par_gp]

5 be/4 root 0.00 B/s 0.00 B/s [netns]

7 be/4 root 0.00 B/s 0.00 B/s [kworker/0:0H-events_highpri]

9 be/4 root 0.00 B/s 0.00 B/s [kworker/0:1H-events_highpri]

10 be/4 root 0.00 B/s 0.00 B/s [mm_percpu_wq]

12 be/4 root 0.00 B/s 0.00 B/s [rcu_tasks_kthre]

13 be/4 root 0.00 B/s 0.00 B/s [rcu_tasks_rude_]

14 be/4 root 0.00 B/s 0.00 B/s [rcu_tasks_trace]

15 be/4 root 0.00 B/s 0.00 B/s [ksoftirqd/0]

16 be/4 root 0.00 B/s 0.00 B/s [rcu_preempt]

17 be/4 root 0.00 B/s 0.00 B/s [migration/0]

19 be/4 root 0.00 B/s 0.00 B/s [cpuhp/0]

20 be/4 root 0.00 B/s 0.00 B/s [cpuhp/1]

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

常用参数

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

-n NUM 显示NUM次,主要用于非交互式模式

-d SEC 间隔SEC秒显示一次

-p PID 监控的进程pid

-u USER 监控的进程用户

三、lsof

lsof(list open files)是一个列出当前系统打开文件的工具,lsof 需要访问核心内存和各种文件,所以必须以root身份执行才能充分发挥优势。lsof不是系统自带的命令,要想使用lsof命令,需要安装lsof软件。

[root@localhost ~]# yum -y install lsof

[root@localhost ~]# lsof

COMMAND PID TID TASKCMD USER FD TYPE DEVICE SIZE/OFF NODE NAME

systemd 1 root cwd DIR 253,0 235 128 /

systemd 1 root rtd DIR 253,0 235 128 /

systemd 1 root txt REG 253,0 1945080 67508326 /usr/lib/systemd/systemd

systemd 1 root mem REG 253,0 45416 67348788 /usr/lib64/libffi.so.8.1.0

systemd 1 root mem REG 253,0 153600 67348802 /usr/lib64/libgpg-error.so.0.32.0

systemd 1 root mem REG 253,0 28568 67348896 /usr/lib64/libattr.so.1.1.2501

systemd 1 root mem REG 253,0 102568 67348636 /usr/lib64/libz.so.1.2.11

systemd 1 root mem REG 253,0 32528 67348775 /usr/lib64/libcap-ng.so.0.0.0

systemd 1 root mem REG 253,0 41064 67420376 /usr/lib64/libeconf.so.0.4.1

systemd 1 root mem REG 253,0 637880 67348851 /usr/lib64/libpcre2-8.so.0.11.0

systemd 1 root mem REG 253,0 906176 67323555 /usr/lib64/libm.so.6

systemd 1 root mem REG 253,0 178744 67348640 /usr/lib64/liblzma.so.5.2.5

systemd 1 root mem REG 253,0 882384 67348653 /usr/lib64/libzstd.so.1.5.1

systemd 1 root mem REG 253,0 1293840 67348792 /usr/lib64/libp11-kit.so.0.3.0

systemd 1 root mem REG 253,0 4459096 67420748 /usr/lib64/libcrypto.so.3.0.1

systemd 1 root mem REG 253,0 144144 67348822 /usr/lib64/liblz4.so.1.9.3

systemd 1 root mem REG 253,0 1305536 67348868 /usr/lib64/libgcrypt.so.20.4.0

systemd 1 root mem REG 253,0 201832 67348663 /usr/lib64/libcrypt.so.2.0.0

systemd 1 root mem REG

参数说明:

PID:进程标识符USER:进程所有者FD:文件描述符TYPE:文件类型,如DIR、REG等DEVICE:指定磁盘的名称SIZE:文件的大小NODE:索引节点NAME:打开文件的确切名称常用参数lsofabc.txt显示开启文件abc.txt的进程

常见使用方法:

lsof -c abc 显示abc进程现在打开的文件

lsof -p 1234 列出进程号为1234的进程所打开的文件

lsof -g gid 显示归属gid的进程情况

lsof +d /DIR/ 显示DIR目录下被进程打开的文件

END

相关推荐

常见的动力电池有哪些?
365足球平台入口

常见的动力电池有哪些?

📅 08-28 👁️ 3856
5个手机投票赚钱软件,让您每天几十元收益不是梦(手机投票挣钱软件哪个好)
微信上怎么买彩票?微信购买彩票方法步骤图解
365足球平台入口

微信上怎么买彩票?微信购买彩票方法步骤图解

📅 07-31 👁️ 7224
她为100个男人的丁丁拍照,采访他们和自己丁丁的故事
梦幻西游25级剧情任务玄奘的身世
365提现流水不足

梦幻西游25级剧情任务玄奘的身世

📅 06-29 👁️ 4909
502怎么洗才能洗得掉
365bet线上官网

502怎么洗才能洗得掉

📅 07-03 👁️ 2902