介紹下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 253,0 36944 67348643 /usr/lib64/libcap.so.2.48
參數說明:
PID:進程標識符
USER:進程所有者
FD:文件描述符
TYPE:文件類型,如DIR、REG等
DEVICE:指定磁盤的名稱
SIZE:文件的大小
NODE:索引節點
NAME:打開文件的確切名稱常用參數lsof abc.txt 顯示開啟文件abc.txt的進程
常見使用方法:
lsof -c abc 顯示abc進程現在打開的文件 lsof -p 1234 列出進程號為1234的進程所打開的文件 lsof -g gid 顯示歸屬gid的進程情況 lsof +d /DIR/ 顯示DIR目錄下被進程打開的文件
審核編輯:劉清
-
Linux
+關注
關注
87文章
11292瀏覽量
209323 -
PID
+關注
關注
35文章
1472瀏覽量
85478 -
磁盤
+關注
關注
1文章
375瀏覽量
25201
原文標題:Linux 查看IO狀態的常用命令
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論