linux 磁碟效能監控,linux磁碟效能
linux下對於查看進程的命令很多也很強大,常用的如:ps top
但是在磁碟效能監控方面就沒有那麼統一了。
下面列舉一些磁碟監控命令,此處只是起到拋磚引玉作用,詳細使用參數請參考man手冊。
一 df
df命令可以擷取硬碟被佔用了多少空間,目前還剩下多少空間等資訊,它也可以顯示所有檔案系統對i節點和磁碟塊的使用方式。
常見的使用方法如:df -h 以人類容易閱讀的方式顯示。
二 du
du的英文原義為“disk usage”,含義為顯示磁碟空間的使用方式,統計目錄(或檔案)所佔磁碟空間的大小。該命令的功能是逐級進入指定目錄的每一個子目錄並顯示該目錄佔用檔案系統資料區塊(1024位元組)的情況。若沒有給出指定目錄,則對目前的目錄進行統計。
常見使用方式有:列出目前的目錄大小:du -sh 如果希望列出目前的目錄中各個子目錄大小 :du -sh *
三 fdisk
可以對磁碟進行分區,同時也可以查看整個磁碟大小,尤其是在磁碟剛買來還沒有分區格式化的時候使用,可以使用:
fdisk /dev/(your disk name) 進入後使用p命令可以查看磁碟的詳細資料。
四 iostat 可以提供豐富的IO狀態資料
$ iostat -d -k 1 10
參數 -d 表示,顯示裝置(磁碟)使用狀態;-k某些使用block為單位的列強制使用Kilobytes為單位;1 10表示,資料顯示每隔1秒重新整理一次,共顯示10次。
使用-x參數可以獲得更多統計資訊,部分顯示參數解釋如下:
rrqm/s:每秒這個裝置相關的讀取請求有多少被Merge了(當系統調用需要讀取資料的 時候,VFS將請求發到各個FS,如果FS發現不同的讀取請求讀取的是相同Block的資料,FS會將這個請求合并Merge);wrqm/s:每秒這個 裝置相關的寫入請求有多少被Merge了。
rsec/s:每秒讀取的扇區數;wsec/: 每秒寫入的扇區數。r/s:The number of read requests that were issued to the device per second;w/s:The number of write requests that were issued to the device per second;
await:每一個IO請求的處理的平均時間(單位是微秒)。這裡可以理解為IO的響應時 間,一般地系統IO回應時間應該低於5ms,如果大於10ms就比較大了。
%util:在統計時間內所有處理IO時間,除以總共統計時間。例如,如果統計間隔1秒,該 裝置有0.8秒在處理IO,而0.2秒閑置,那麼該裝置的%util = 0.8/1 = 80%,所以該參數暗示了裝置的繁忙程度。一般地,如果該參數是100%表示裝置已經接近滿負荷運行了(當然如果是多磁碟,即使%util是100%,因 為磁碟的並發能力,所以磁碟使用未必就到了瓶頸)。
五 vmstat 即時產看記憶體使用量情況
不解釋了,直接上結果:
$ vmstat 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 0 2037916 105012 725188 0 0 63 18 206 589 5 2 92 2 0
想看清楚一些可以加 -S 後面跟 K M
$ vmstat -S Mprocs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 1903 104 723 0 0 57 17 207 613 5 2 92 2 0
六 dstat 強大的網路 磁碟 cpu監控命令
彩色顯示cpu、磁碟、網路、IO、記憶體等使用方式。
dstat ----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--usr sys idl wai hiq siq| read writ| recv send| in out | int csw 5 2 92 2 0 0| 266k 70k| 0 0 | 0 0 | 825 2532 2 2 82 14 0 0|3596k 84k| 352B 0 | 0 0 | 894 12k 3 3 83 11 0 0|2632k 0 | 0 0 | 0 0 |1025 7427 1 1 87 11 0 0|3020k 52k| 128B 142B| 0 0 | 534 4132 2 1 88 9 0 0|3236k 0 | 160B 78B| 0 0 | 597 6167 ^C
預設情況下分五個地區:
1、 --total-cpu-usage---- CPU使用率
usr:使用者空間的程式所佔百分比;
sys:系統空間程式所佔百分比;
idel:空閑百分比;
wai:等待磁碟I/O所消耗的百分比;
hiq:硬中斷次數;
siq:非強制中斷次數;
2、 -dsk/total- 磁碟統計
read:讀總數
writ:寫總數
3、 -net/total- 網路統計
recv:網路收包總數
send:網路發包總數
4、 ---paging-- 記憶體分頁統計
in: pagein(換入)
out:page out(換出)
註:系統的分頁活動。分頁指的是一種記憶體管理技術用於尋找系統情境,一個較大的分頁表明系統正在使用大量的交換空間,通常情況下當系統已經開始用交換空間的時候,就說明你的記憶體已經不夠用了,或者說記憶體非常分散,理想情況下page in(換入)和page out(換出)的值是0 0。
5、 --system-- 系統資訊
int:中斷次數
csw:環境切換
註:中斷(int)和環境切換(csw)。這項統計僅在有比較基準時才有意義。這一欄中較高的統計值通常表示大量的進程造成擁塞,需要對CPU進行關注。你的伺服器一般情況下都會運行運行一些程式,所以這項總是顯示一些數值。
預設情況下,dstat 會每隔一秒重新整理一次資料,一直重新整理並一直輸出,按 Ctrl+C 退出 "dstat"
七 iotop 查看進程的io效能
以上命令只能查看整個硬碟的io效能,不能對每個進程的io效能進行監控。iotop則用於監控每個進程的io效能,
類似於查看進程狀態的top命令,我這裡需要超級許可權才能運行
非常直觀的顯示每個進程的讀寫速度,不上結果了,自行驗證。
八 nload 命令列即時監控網速
nload <eth0 / wlan0>
附:查看系統中某個目錄下佔用空間最大的前十個檔案夾:
<pre name="code" class="python">sudo du -sh * ./ | sort -n -r | head -n 10