Linux操作技術文檔——系統監控

系統監控

一、proc文件系統基本概念

1、基本概念

1、作用:內核部件可以通過該文件系統向用戶空間提供接口來提供查詢信息、修改軟件行爲,因而它是一種比較重要的特殊文件系統。
2、proc文件系統就是一個文件系統,它可以掛載在目錄樹的任意位置,不過通常掛載在/proc下,它大致包含了如下信息:內存管理、每個進程的相關信息、文件系統、設備驅動程序、系統總線、電源管理、終端、系統控制參數、網絡。主機上的各個進程都是以目錄的形態存在於/proc當中。

[root@localhost ~]# ll /proc/1              //systemd進程
總用量 0
dr-xr-xr-x. 2 root root 0 5月  14 19:22 attr
-rw-r--r--. 1 root root 0 5月  14 19:22 autogroup
-r--------. 1 root root 0 5月  14 19:22 auxv
-r--r--r--. 1 root root 0 5月  14 19:10 cgroup
--w-------. 1 root root 0 5月  14 19:22 clear_refs
-r--r--r--. 1 root root 0 5月  14 19:03 cmdline              //進程啓動命令
-rw-r--r--. 1 root root 0 5月  14 19:10 comm
-rw-r--r--. 1 root root 0 5月  14 19:22 coredump_filter
-r--r--r--. 1 root root 0 5月  14 19:22 cpuset
lrwxrwxrwx. 1 root root 0 5月  14 19:22 cwd -> /
-r--------. 1 root root 0 5月  14 19:10 environ              //環境變量內容
lrwxrwxrwx. 1 root root 0 5月  14 19:10 exe -> /usr/lib/systemd/systemd
dr-x------. 2 root root 0 5月  14 19:22 fd
dr-x------. 2 root root 0 5月  14 19:22 fdinfo
-rw-r--r--. 1 root root 0 5月  14 19:22 gid_map
-r--------. 1 root root 0 5月  14 19:22 io
-r--r--r--. 1 root root 0 5月  14 19:22 limits
-rw-r--r--. 1 root root 0 5月  14 19:10 loginuid
dr-x------. 2 root root 0 5月  14 19:22 map_files
-r--r--r--. 1 root root 0 5月  14 19:22 maps
-rw-------. 1 root root 0 5月  14 19:22 mem
-r--r--r--. 1 root root 0 5月  14 19:03 mountinfo
-r--r--r--. 1 root root 0 5月  14 19:22 mounts
-r--------. 1 root root 0 5月  14 19:22 mountstats
dr-xr-xr-x. 6 root root 0 5月  14 19:22 net
dr-x--x--x. 2 root root 0 5月  14 19:22 ns
-r--r--r--. 1 root root 0 5月  14 19:22 numa_maps
-rw-r--r--. 1 root root 0 5月  14 19:22 oom_adj
-r--r--r--. 1 root root 0 5月  14 19:22 oom_score
-rw-r--r--. 1 root root 0 5月  14 19:22 oom_score_adj
-r--r--r--. 1 root root 0 5月  14 19:22 pagemap
-r--------. 1 root root 0 5月  14 19:22 patch_state
-r--r--r--. 1 root root 0 5月  14 19:22 personality
-rw-r--r--. 1 root root 0 5月  14 19:22 projid_map
lrwxrwxrwx. 1 root root 0 5月  14 19:11 root -> /
-rw-r--r--. 1 root root 0 5月  14 19:22 sched
-r--r--r--. 1 root root 0 5月  14 19:22 schedstat
-r--r--r--. 1 root root 0 5月  14 19:10 sessionid
-rw-r--r--. 1 root root 0 5月  14 19:22 setgroups
-r--r--r--. 1 root root 0 5月  14 19:22 smaps
-r--r--r--. 1 root root 0 5月  14 19:22 stack
-r--r--r--. 1 root root 0 5月  14 19:22 stat
-r--r--r--. 1 root root 0 5月  14 19:22 statm
-r--r--r--. 1 root root 0 5月  14 19:03 status
-r--r--r--. 1 root root 0 5月  14 19:22 syscall
dr-xr-xr-x. 3 root root 0 5月  14 19:10 task
-r--r--r--. 1 root root 0 5月  14 19:22 timers
-rw-r--r--. 1 root root 0 5月  14 19:22 uid_map
-r--r--r--. 1 root root 0 5月  14 19:22 wchan
[root@localhost ~]# cat /proc/1/cmdline
/usr/lib/systemd/systemd--switched-root--system--deserialize22

2、相關參數

1、加載kernel時的相關指令與參數

[root@localhost ~]# cat /proc/cmdline 

2、CPU相關信息,包含頻率、類型與運算功能

[root@localhost ~]# cat /proc/cpuinfo 

3、系統各個主要設備的主設備號碼

[root@localhost ~]# cat /proc/devices

4、記錄系統加載的文件系統

[root@localhost ~]# cat /proc/filesystems

5、平均負載值

[root@localhost ~]# cat /proc/loadavg              //同top命令

6、內存信息

[root@localhost ~]# cat /proc/meminfo              //同free命令

7、系統已經加載的模塊

[root@localhost ~]# cat /proc/modules           

8、系統已經掛載的數據

[root@localhost ~]# cat /proc/mounts              //同mount命令

9、系統的分區文件

[root@localhost ~]# cat /proc/partitions

10、系統的核心版本

[root@localhost ~]# cat /proc/version              //同uname -a命令

二、監控常用命令及工具

1、常用命令

1、系統共運行了多長時間和系統的平均負載

[root@localhost ~]# uptime
 19:04:44 up 1 min,  2 users,  load average: 1.39, 0.42, 0.14

2、顯示當前系統未使用的和已使用的內存數目

[root@localhost ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           1.8G        739M         74M         21M        1.0G        886M
Swap:          2.0G        2.8M        2.0G

2、vmstat命令

1、參數解釋

參數 解釋
-V 顯示vmstat版本信息
-n 只在開始時顯示一次各字段名稱
-a 顯示活躍和非活躍內存
-d 顯示各個磁盤相關統計信息
-D 顯示磁盤總體信息
-p 顯示指定磁盤分區統計信息
-s 顯示內存相關統計信息及多種系統活動數量
-m 顯示slabinfo
-t 在輸出信息的時候也將時間一併輸出出來
-S 使用指定單位顯示。參數有k(1000)、K(1024)、m(1000000)、M(1048576)字節
delay 刷新時間間隔。如果不指定,只顯示一條結果
count 刷新次數。如果不指定刷新次數,但指定了刷新時間間隔,這時刷新次數爲無窮

2、顯示虛擬內存狀態

[root@localhost ~]# vmstat 
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 130820   2116 924500    0    0  2481   421  677 1199 10 13 77  0  0
字段 說明
procs r 表示運行和等待CPU時間片的進程數,這個值如果長期大於系統CPU個數,說明CPU不足,需要增加CPU
b 表示在等待資源的進程數
memory swpd 表示切換到內存交換區的內存大小,即虛擬內存已使用的大小(單位KB)
free 表示當前空閒的物理內存
buff 表示buffers cached內存大小,也就是緩衝大小
Cache 表示page cached的內存大小,也就是緩存大小
swap si 表示從磁盤調入內存,也就是內存進入內存交換區的內存大小
so 表示由內存進入磁盤,也就是由內存交換區進入內存的內存大小。
注意 一般情況下si、so的值都爲0,如果si、so的值長期不爲0,則說明系統內存不足,需要增加系統內存
io bi 表示從塊設備每秒讀取的塊數量
bo 表示每秒寫到塊設備的塊數量
注意 如果bi+bo的值過大,且wa值較大,則表示系統磁盤IO瓶頸
system in 表示每秒的中斷數,包括時鐘
cs 表示每秒產生的上下文切換次數
注意 這兩個值越大,則由內核消耗的CPU就越多
CPU us 表示用戶進程消耗的CPU時間百分比,us值越高,說明用戶進程消耗CPU時間越多,如果長期大於50%,則需要考慮優化程序或者算法
sy 表示系統內核進程消耗的CPU時間百分比,一般來說us+sy應該小於80%,如果大於80%,說明可能存在CPU瓶頸
id 表示CPU處在空間狀態的時間百分比
wa 表示IP等待所佔用的CPU時間百分比,wa值越高,說明I/O等待越嚴重,根據經驗wa的參考值爲20%,如果超過20%,說明I/O等待嚴重

第一個參數是採樣的時間間隔數,單位是秒,第二個參數是採樣的次數,即每隔2秒採樣一次,一共採樣兩次

[root@localhost ~]# vmstat -SM 2 2
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      2    134      0   1009    0    0   982   781  542  675  5  6 89  0  0
 0  0      2    134      0   1009    0    0     0     0  453  729  1  1 98  0  0

3、mpstat命令

可以查看多核心cpu中每個計算核心的統計數據

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

每2秒查看一次,共查看5次

[root@localhost ~]# mpstat 2 5          
Linux 3.10.0-1062.18.1.el7.x86_64 (localhost.localdomain) 	2020年05月14日 _x86_64_	(2 CPU)

19時12分26秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
19時12分28秒  all    0.00    0.00    0.50    0.00    0.00    0.00    0.00    0.00    0.00   99.50
19時12分30秒  all    0.00    0.00    0.50    0.00    0.00    0.00    0.00    0.00    0.00   99.50
19時12分32秒  all    0.25    0.00    0.50    0.00    0.00    0.00    0.00    0.00    0.00   99.25
19時12分34秒  all    0.25    0.00    0.25    0.00    0.00    0.00    0.00    0.00    0.00   99.50
19時12分36秒  all    0.00    0.00    0.50    0.00    0.00    0.00    0.00    0.00    0.00   99.50
平均時間:  all    0.10    0.00    0.45    0.00    0.00    0.00    0.00    0.00    0.00   99.45

查看每個cpu核心的詳細當前運行狀況信息

[root@localhost ~]# mpstat -P ALL 2 3
Linux 3.10.0-1062.18.1.el7.x86_64 (localhost.localdomain) 	2020年05月14日 _x86_64_	(2 CPU)

19時13分41秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
19時13分43秒  all    0.25    0.00    0.76    0.00    0.00    0.25    0.00    0.00    0.00   98.74
19時13分43秒    0    0.50    0.00    1.01    0.00    0.00    0.00    0.00    0.00    0.00   98.49
19時13分43秒    1    0.00    0.00    0.51    0.00    0.00    0.00    0.00    0.00    0.00   99.49

19時13分43秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
19時13分45秒  all    0.25    0.00    0.50    0.00    0.00    0.00    0.00    0.00    0.00   99.25
19時13分45秒    0    0.00    0.00    0.50    0.00    0.00    0.00    0.00    0.00    0.00   99.50
19時13分45秒    1    0.50    0.00    0.50    0.00    0.00    0.00    0.00    0.00    0.00   99.00

19時13分45秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
19時13分47秒  all    0.25    0.00    0.25    0.00    0.00    0.00    0.00    0.00    0.00   99.50
19時13分47秒    0    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00
19時13分47秒    1    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00

平均時間:  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
平均時間:  all    0.25    0.00    0.50    0.00    0.00    0.08    0.00    0.00    0.00   99.16
平均時間:    0    0.17    0.00    0.50    0.00    0.00    0.00    0.00    0.00    0.00   99.33
平均時間:    1    0.17    0.00    0.34    0.00    0.00    0.00    0.00    0.00    0.00   99.50
參數 說明
%user 在internal時間段裏,用戶的CPU時間(%),不包含nice值爲負進程 (usr/total)*100
%nice 在internal時間段裏,nice值爲負進程的CPU時間(%)(nice/total)*100
%sys 在internal時間段裏,內核時間(%) (system/total)*100
%iowait 在internal時間段裏,硬盤IO等待時間(%) (iowait/total)*100
%irq 在internal時間段裏,硬中斷時間(%) (irq/total)*100
%soft 在internal時間段裏,軟中斷時間(%) (softirq/total)*100
%idle 在internal時間段裏,CPU除去等待磁盤IO操作外的因爲任何原因而空閒的時間閒置時間(%) (idle/total)*100

4、iostat命令

監視系統輸入輸出設備和CPU的使用情況

[root@localhost ~]# iostat 
Linux 3.10.0-1062.18.1.el7.x86_64 (localhost.localdomain) 	2020年05月14日 _x86_64_	(2 CPU)              //系統信息和監測時間

avg-cpu:  %user   %nice %system %iowait  %steal   %idle              //CPU使用情況
           2.20    1.54    4.33    0.10    0.00   91.83

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              34.40      1457.73      1081.36    1007526     747392
dm-0             32.34      1430.65      1055.17     988806     729294
dm-1              1.02         3.24         3.51       2236       2424
選項 說明 選項 說明
-c 僅顯示CPU使用情況 -d 僅顯示設備利用率
-k 顯示狀態以千字節每秒爲單位,而不使用塊每秒 -m 顯示狀態以兆字節每秒爲單位
-p 僅顯示塊設備和所有被使用的其他分區的狀態 -t 顯示每個報告產生時的時間
-V 顯示版號並退出 -x 顯示擴展狀態
參數 說明
tps 該設備每秒的傳輸次數
kB_read/s 每秒從設備(drive expressed)讀取的數據量
kB_wrtn/s 每秒向設備(drive expressed)寫入的數據量
kB_read 讀取的總數據量
kB_wrtn 寫入的總數量數據量
標識 說明 標識 說明
Device 監測設備名稱 rrqm/s 每秒需要讀取需求的數量
wrqm/s 每秒需要寫入需求的數量 r/s 每秒實際讀取需求的數量
w/s 每秒實際寫入需求的數量 rsec/s 每秒讀取區段的數量
wsec/s 每秒寫入區段的數量 rkB/s 每秒實際讀取的大小,單位爲KB
wkB/s 每秒實際寫入的大小,單位爲KB avgrq-sz 需求的平均大小區段
avgqu-sz 需求的平均隊列長度 await 等待I/O平均的時間(milliseconds)
svctm I/O需求完成的平均時間 %util 被I/O需求消耗的CPU百分比

5、sar命令

sar命令常用格式:sar [options] [-A] [-o file] t [n],其中:
t爲採樣間隔,n爲採樣次數,默認值是1;
-o file表示將命令結果以二進制格式存放在文件中,file 是文件名。
options 爲命令行選項

常用選項 說明 常用選項 說明
-A 所有報告的總和 -u 輸出CPU使用情況的統計信息
-v 輸出inode、文件和其他內核表的統計信息 -d 輸出每一個塊設備的活動信息
-r 輸出內存和交換空間的統計信息 -b 顯示I/O和傳送速率的統計信息
-a 文件讀寫情況 -c 輸出進程統計信息,每秒創建的進程數
-R 輸出內存頁面的統計信息 -y 終端設備活動情況
-W 輸出系統交換活動信息

1、CPU監控
每10秒採樣一次,連續採樣3次,觀察CPU 的使用情況,並將採樣結果以二進制形式存入當前目錄下的文件test中

[root@localhost ~]# sar -u -o test 10 3
Linux 3.10.0-1062.18.1.el7.x86_64 (localhost.localdomain) 	2020年05月15日 	_x86_64_	(2 CPU)

15時08分11秒     CPU     %user     %nice   %system   %iowait    %steal     %idle
15時08分21秒     all      0.45      0.00      1.16      0.05      0.00     98.33
15時08分31秒     all      0.05      0.00      0.25      0.00      0.00     99.70
15時08分41秒     all      0.10      0.00      0.25      0.00      0.00     99.65
平均時間:     all      0.20      0.00      0.55      0.02      0.00     99.23
輸出項 說明
CPU all 表示統計信息爲所有 CPU 的平均值
%user 顯示在用戶級別(application)運行使用 CPU 總時間的百分比
%nice 顯示在用戶級別,用於nice操作,所佔用 CPU 總時間的百分比
%system 在覈心級別(kernel)運行所使用 CPU 總時間的百分比
%iowait 顯示用於等待I/O操作佔用 CPU 總時間的百分比
%steal 管理程序(hypervisor)爲另一個虛擬進程提供服務而等待虛擬CPU 的百分比
%idle 顯示 CPU 空閒時間佔用 CPU 總時間的百分比
注意 若 %iowait 的值過高,表示硬盤存在I/O瓶頸; %idle 的值高但系統響應慢時,有可能是 CPU 等待分配內存,此時應加大內存容量; %idle 的值持續低於1,則系統的CPU處理能力相對較低,表明系統中最需要解決的資源是 CPU

查看二進制文件test中的內容

[root@localhost ~]# sar -u -f test 

2、inode、文件和其他內核表監控
每10秒採樣一次,連續採樣3次,觀察覈心表的狀態

[root@localhost ~]# sar -v 10 3
Linux 3.10.0-1062.18.1.el7.x86_64 (localhost.localdomain) 	2020年05月15日 	_x86_64_	(2 CPU)

15時14分09秒 dentunusd   file-nr  inode-nr    pty-nr
15時14分19秒     18310      9120     33875         1
15時14分29秒     18315      9120     33880         1
15時14分39秒     18315      9120     33880         1
平均時間:     18313      9120     33878         1
輸出項 說明 輸出項 說明
dentunusd 目錄高速緩存中未被使用的條目數量 file-nr 文件句柄(file handle)的使用數量
inode-nr 索引節點句柄(inode handle)的使用數量 pty-nr 使用的pty數量

3、內存和交換空間監控
每10秒採樣一次,連續採樣3次,監控內存分頁

[root@localhost ~]# sar -r 10 3
Linux 3.10.0-1062.18.1.el7.x86_64 (localhost.localdomain) 	2020年05月15日 	_x86_64_	(2 CPU)

15時17分07秒 kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
15時17分17秒    131672   1731416     92.93       172   1006796   4042572    102.08    901532    590852         0
15時17分27秒    131384   1731704     92.95       172   1006796   4042568    102.08    901512    590852         0
15時17分37秒    131424   1731664     92.95       172   1006796   4042568    102.08    901532    590852         0
平均時間:    131493   1731595     92.94       172   1006796   4042569    102.08    901525    590852         0
輸出項 說明
kbmemfree 這個值和free命令中的free值基本一致,所以它不包括buffer和cache的空間
kbmemused 這個值和free命令中的used值基本一致,所以它包括buffer和cache的空間
%memused 這個值是kbmemused和內存總量(不包括swap)的一個百分比
kbbuffers和kbcached 這兩個值就是free命令中的buffer和cache
kbcommit 保證當前系統所需要的內存,即爲了確保不溢出而需要的內存(RAM+swap)
%commit 這個值是kbcommit與內存總量(包括swap)的一個百分比

4、內存分頁監控
每10秒採樣一次,連續採樣3次,監控內存分頁

[root@localhost ~]# sar -B 10 3
Linux 3.10.0-1062.18.1.el7.x86_64 (localhost.localdomain) 	2020年05月15日 	_x86_64_	(2 CPU)

15時21分04秒  pgpgin/s pgpgout/s   fault/s  majflt/s  pgfree/s pgscank/s pgscand/s pgsteal/s    %vmeff
15時21分14秒      0.00      0.00      8.00      0.00     46.90      0.00      0.00      0.00      0.00
15時21分24秒      0.00      7.70    267.10      0.00    123.70      0.00      0.00      0.00      0.00
15時21分34秒      0.00      0.00      8.00      0.00     40.80      0.00      0.00      0.00      0.00
平均時間:      0.00      2.57     94.37      0.00     70.47      0.00      0.00      0.00      0.00
輸出項 說明
pgpgin/s 表示每秒從磁盤或SWAP置換到內存的字節數(KB)
pgpgout/s 表示每秒從內存置換到磁盤或SWAP的字節數(KB)
fault/s 每秒鐘系統產生的缺頁數,即主缺頁與次缺頁之和(major +minor)
majflt/s 每秒鐘產生的主缺頁數
pgfree/s 每秒被放入空閒隊列中的頁個數
pgscank/s 每秒被kswapd掃描的頁個數
pgscand/s 每秒直接被掃描的頁個數
pgsteal/s 每秒鐘從cache中被清除來滿足內存需要的頁個數
%vmeff 每秒清除的頁(pgsteal)佔總掃描頁(pgscank+pgscand)的百分比

5、I/O和傳送速率監控
每10秒採樣一次,連續採樣3次,報告緩衝區的使用情況

[root@localhost ~]# sar -b 10 3
Linux 3.10.0-1062.18.1.el7.x86_64 (localhost.localdomain) 	2020年05月15日 	_x86_64_	(2 CPU)

15時27分59秒       tps      rtps      wtps   bread/s   bwrtn/s
15時28分09秒      0.10      0.00      0.10      0.00      1.60
15時28分19秒      0.00      0.00      0.00      0.00      0.00
15時28分29秒      0.20      0.00      0.20      0.00      4.20
平均時間:      0.10      0.00      0.10      0.00      1.93
輸出項 說明 輸出項 說明
tps 每秒鐘物理設備的 I/O 傳輸總量 rtps 每秒鐘從物理設備讀入的數據總量
wtps 每秒鐘向物理設備寫入的數據總量 bread/s 每秒鐘從物理設備讀入的數據量,單位爲塊/s
bwrtn/s 每秒鐘向物理設備寫入的數據量,單位爲塊/s

6、進程隊列長度和平均負載狀態監控
每10秒採樣一次,連續採樣3次,監控進程隊列長度和平均負載狀態

[root@localhost ~]# sar -q 10 3
Linux 3.10.0-1062.18.1.el7.x86_64 (localhost.localdomain) 	2020年05月15日 	_x86_64_	(2 CPU)

15時30分58秒   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
15時31分08秒         0       495      0.00      0.01      0.05         0
15時31分18秒         0       495      0.00      0.01      0.05         0
15時31分28秒         0       495      0.00      0.01      0.05         0
平均時間:         0       495      0.00      0.01      0.05         0
輸出項 說明 輸出項 說明
runq-sz 運行隊列的長度(等待運行的進程數) plist-sz 進程列表中進程(processes)和線程(threads)的數量
ldavg-1 最後1分鐘的系統平均負載(System load average) ldavg-5 過去5分鐘的系統平均負載
ldavg-15 過去15分鐘的系統平均負載

7、系統交換活動信息監控
每10秒採樣一次,連續採樣3次,監控系統交換活動信息

[root@localhost ~]# sar -W 10 3
Linux 3.10.0-1062.18.1.el7.x86_64 (localhost.localdomain) 	2020年05月15日 	_x86_64_	(2 CPU)

15時33分51秒  pswpin/s pswpout/s
15時34分01秒      0.00      0.00
15時34分11秒      0.00      0.00
15時34分21秒      0.00      0.00
平均時間:      0.00      0.00
輸出項 說明
pswpin/s 每秒系統換入的交換頁面(swap page)數量
pswpout/s 每秒系統換出的交換頁面(swap page)數量

8、設備使用情況監控
每10秒採樣一次,連續採樣3次,報告設備使用情況

[root@localhost ~]# sar -d 10 3 -p
Linux 3.10.0-1062.18.1.el7.x86_64 (localhost.localdomain) 	2020年05月15日 	_x86_64_	(2 CPU)

15時43分51秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
15時44分01秒       sda      0.10      0.00      1.00     10.00      0.00      0.00      0.00      0.00
15時44分01秒 centos-root      0.10      0.00      1.00     10.00      0.00      0.00      0.00      0.00
15時44分01秒 centos-swap      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

15時44分01秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
15時44分11秒       sda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
15時44分11秒 centos-root      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
15時44分11秒 centos-swap      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

15時44分11秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
15時44分21秒       sda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
15時44分21秒 centos-root      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
15時44分21秒 centos-swap      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

平均時間:       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
平均時間:       sda      0.03      0.00      0.33     10.00      0.00      0.00      0.00      0.00
平均時間: centos-root      0.03      0.00      0.33     10.00      0.00      0.00      0.00      0.00
平均時間: centos-swap      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
解釋項 說明
tps 每秒從物理磁盤I/O的次數,多個邏輯請求會被合併爲一個I/O磁盤請求
rd_sec/s 每秒讀扇區的次數.
wr_sec/s 每秒寫扇區的次數
avgrq-sz 平均每次設備I/O操作的數據大小(扇區)
avgqu-sz 磁盤請求隊列的平均長度
await 從請求磁盤操作到系統完成處理,每次請求的平均消耗時間,包括請求隊列等待時間,單位是毫秒(1秒=1000毫秒)
svctm 系統處理每次請求的平均時間,不包括在請求隊列中消耗的時間
%util I/O請求佔CPU的百分比,比率越大,說明越飽和
參數-p可以打印出sda,hdc等磁盤設備名稱,如果不用參數-p,設備節點則有可能是dev8-0,dev22-0
avgqu-sz 的值較低時,設備的利用率較高;當%util的值接近 1% 時,表示設備帶寬已經佔滿

6、iotop命令

使用iotop命令可以很方便的查看每個進程是如何使用IO。實時觀察磁盤io情況,可以觀察到哪個進程佔用I/O。

[root@localhost ~]# yum -y install iotop
參數 說明 參數 說明
-o 只顯示有io操作的進程 -b 批量顯示,無交互,主要用作記錄到文件
-n NUM:顯示NUM次,主要用於非交互式模式 -d SEC 間隔SEC秒顯示一次
-p PID 監控的進程pid -u USER 監控的進程用戶
[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  SWAPIN     IO>    COMMAND      
     1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % systemd~alize 22
     2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]
     4 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/0:0H]
     6 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/0]
     7 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/0]
     8 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [rcu_bh]
     9 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [rcu_sched]

iotop常用快捷鍵:

  1. 左右箭頭:改變排序方式,默認是按IO排序
  2. r:改變排序順序。
  3. o:只顯示有IO輸出的進程。
  4. p:進程/線程的顯示方式的切換。
  5. a:顯示累積使用量。
  6. q:退出。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章