介紹下Linux的3個(gè)常用I/O相關(guān)命令,解決I/O壓力過(guò)大問(wèn)題時(shí)用iostat,查看磁盤的I/O狀態(tài)用iotop,查看I/O進(jìn)程排名用lsof
一、iostat
iostat工具將對(duì)系統(tǒng)的磁盤操作活動(dòng)進(jìn)行監(jiān)視。它的特點(diǎn)是匯報(bào)磁盤活動(dòng)統(tǒng)計(jì)情況,同時(shí)也會(huì)匯報(bào)出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: 系統(tǒng)占用CPU的百分比 %iowait: CPU等待硬件I/O時(shí)占用CPU百分比 %idle: CPU空閑時(shí)間的百分比
Device段
tps: 每秒鐘I/O請(qǐng)求數(shù) kB_read /s: 每秒讀取的塊數(shù) kB_wrtn/s: 每秒寫入的塊數(shù) kB_read: 讀入的塊總數(shù) kB_wrtn: 寫入的塊總數(shù)
常用參數(shù)
-c 僅顯示CPU統(tǒng)計(jì)信息,與-d互斥 -d 僅顯示磁盤統(tǒng)計(jì)信息,與-c互斥 -k 以K為單位顯示每秒的磁盤請(qǐng)求數(shù),默認(rèn)單位塊 -p 設(shè)備名 | ALL,只顯示某個(gè)設(shè)備的信息,或者全部設(shè)備 -x 輸出擴(kuò)展信息 sec 間隔sec秒顯示一次
二、iotop
iotop用來(lái)監(jiān)視磁盤 I/O 使用狀況的 top 類工具,具有與 top 相似的 UI,其中包括 PID、用戶、I/O、進(jìn)程等相關(guān)信息。iotop不是系統(tǒng)自帶的命令,要想使用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]
通過(guò)輸出結(jié)果,我們可以清楚地知曉是什么程序在讀寫磁盤,速度以及命令行,pid 等信息。
常用參數(shù)
-b 批量顯示,無(wú)交互。主要用作記錄到文件 -n NUM 顯示NUM次,主要用于非交互式模式 -d SEC 間隔SEC秒顯示一次 -p PID 監(jiān)控的進(jìn)程pid -u USER 監(jiān)控的進(jìn)程用戶
三、lsof
lsof(list open files)是一個(gè)列出當(dāng)前系統(tǒng)打開(kāi)文件的工具,lsof 需要訪問(wèn)核心內(nèi)存和各種文件,所以必須以root身份執(zhí)行才能充分發(fā)揮優(yōu)勢(shì)。lsof不是系統(tǒng)自帶的命令,要想使用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 253,0 36944 67348643 /usr/lib64/libcap.so.2.48
參數(shù)說(shuō)明:
PID:進(jìn)程標(biāo)識(shí)符
USER:進(jìn)程所有者
FD:文件描述符
TYPE:文件類型,如DIR、REG等
DEVICE:指定磁盤的名稱
SIZE:文件的大小
NODE:索引節(jié)點(diǎn)
NAME:打開(kāi)文件的確切名稱常用參數(shù)lsof abc.txt 顯示開(kāi)啟文件abc.txt的進(jìn)程
常見(jiàn)使用方法:
lsof -c abc 顯示abc進(jìn)程現(xiàn)在打開(kāi)的文件 lsof -p 1234 列出進(jìn)程號(hào)為1234的進(jìn)程所打開(kāi)的文件 lsof -g gid 顯示歸屬gid的進(jìn)程情況 lsof +d /DIR/ 顯示DIR目錄下被進(jìn)程打開(kāi)的文件
審核編輯:劉清
-
Linux
+關(guān)注
關(guān)注
87文章
11292瀏覽量
209318 -
PID
+關(guān)注
關(guān)注
35文章
1472瀏覽量
85475 -
磁盤
+關(guān)注
關(guān)注
1文章
375瀏覽量
25201
原文標(biāo)題:Linux 查看IO狀態(tài)的常用命令
文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論