新聞中心
我們在線上linux服務(wù)器排查問題時,一般會通過top、free、netstat、df -h等命令排查cpu、內(nèi)存、網(wǎng)絡(luò)和磁盤等問題。有的時候我們需要更進一步了解磁盤io的使用情況,本篇文章重點為大家講解一下Linux下查看磁盤IO使用具體方法。

成都創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站建設(shè)、網(wǎng)站設(shè)計與策劃設(shè)計,東平網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:東平等地區(qū)。東平做網(wǎng)站價格咨詢:028-86922220
1.iostat:
1.1 命令格式:
iostat[參數(shù)][時間][次數(shù)]
1.2 命令功能:
通過iostat方便查看CPU、網(wǎng)卡、tty設(shè)備、磁盤、CD-ROM 等等設(shè)備的活動情況, 負載信息。
1.3 命令參數(shù):
-C 顯示CPU使用情況 -d 顯示磁盤使用情況 -k 以 KB 為單位顯示 -m 以 M 為單位顯示 -N 顯示磁盤陣列(LVM) 信息 -n 顯示NFS 使用情況 -p[磁盤] 顯示磁盤和分區(qū)的情況 -t 顯示終端和CPU的信息 -x 顯示詳細信息 -V 顯示版本信息
舉例1:
iostat
如圖所示:
cpu屬性值說明:
%user:CPU處在用戶模式下的時間百分比。 %nice:CPU處在帶NICE值的用戶模式下的時間百分比。 %system:CPU處在系統(tǒng)模式下的時間百分比。 %iowait:CPU等待輸入輸出完成時間的百分比。 -%steal:管理程序維護另一個虛擬處理器時,虛擬CPU的無意識等待時間百分比。 %idle:CPU空閑時間百分比。
備注:如果**%iowait的值過高,表示硬盤存在I/O瓶頸,%idle**值高,表示CPU較空閑,如果%idle值高但系統(tǒng)響應(yīng)慢時,有可能是CPU等待分配內(nèi)存,此時應(yīng)加大內(nèi)存容量。%idle值如果持續(xù)低于10,那么系統(tǒng)的CPU處理能力相對較低,表明系統(tǒng)中最需要解決的資源是CPU。
Device屬性值說明:
tps:該設(shè)備每秒的傳輸次數(shù)(Indicate the number of transfers per second that were issued to the device.)。“一次傳輸”意思是“一次I/O請求”。多個邏輯請求可能會被合并為“一次I/O請求”?!耙淮蝹鬏敗闭埱蟮拇笮∈俏粗摹?br /> kB_read/s:每秒從設(shè)備(drive expressed)讀取的數(shù)據(jù)量; kB_wrtn/s:每秒向設(shè)備(drive expressed)寫入的數(shù)據(jù)量; kB_read:讀取的總數(shù)據(jù)量; kB_wrtn:寫入的總數(shù)量數(shù)據(jù)量;這些單位都為Kilobytes。
舉例2:
iostat -d -k 1 10
參數(shù) -d 表示,顯示設(shè)備(磁盤)使用狀態(tài);-k某些使用block為單位的列強制使用Kilobytes為單位;1 ,10表示,數(shù)據(jù)顯示每隔1秒刷新一次,共顯示10次。
1.4 指定監(jiān)控的設(shè)備名稱:
iostat -d sda 2
1.5 使用-x參數(shù)我們可以獲得更多統(tǒng)計信息
iostat -d -x -k 1 10
disk屬性說明:
rrqm/s: 每秒進行 merge 的讀操作數(shù)目。即 rmerge/s wrqm/s: 每秒進行 merge 的寫操作數(shù)目。即 wmerge/s r/s: 每秒完成的讀 I/O 設(shè)備次數(shù)。即 rio/s w/s: 每秒完成的寫 I/O 設(shè)備次數(shù)。即 wio/s rsec/s: 每秒讀扇區(qū)數(shù)。即 rsect/s wsec/s: 每秒寫扇區(qū)數(shù)。即 wsect/s rkB/s: 每秒讀K字節(jié)數(shù)。是 rsect/s 的一半,因為每扇區(qū)大小為512字節(jié)。 wkB/s: 每秒寫K字節(jié)數(shù)。是 wsect/s 的一半。 avgrq-sz: 平均每次設(shè)備I/O操作的數(shù)據(jù)大小 (扇區(qū))。 avgqu-sz: 平均I/O隊列長度。 await: 平均每次設(shè)備I/O操作的等待時間 (毫秒)。 svctm: 平均每次設(shè)備I/O操作的服務(wù)時間 (毫秒)。 %util: 一秒中有百分之多少的時間用于 I/O 操作,即被io消耗的cpu百分比
備注:如果 %util 接近 100%,說明產(chǎn)生的I/O請求太多,I/O系統(tǒng)已經(jīng)滿負荷,該磁盤可能存在瓶頸。如果 svctm 比較接近 await,說明 I/O 幾乎沒有等待時間;如果 await 遠大于 svctm,說明I/O 隊列太長,io響應(yīng)太慢,則需要進行必要優(yōu)化。如果avgqu-sz比較大,也表示有當量io在等待。
1.6 -c參數(shù):iostat 獲取cpu部分狀態(tài)值:
iostat -c 1 10
在這里插入圖片描述
1.7 查看設(shè)備使用率(%util)、響應(yīng)時間(await)
iostat -d -x -k 1 10
1.8 查看TPS和吞吐量信息(磁盤讀寫速度單位為KB)
iostat -d -k 1 10
在這里插入圖片描述
1.9查看TPS和吞吐量信息(磁盤讀寫速度單位為MB)
iostat -d -m 2
2.iotop
iotop是一款開源、免費的用來監(jiān)控磁盤I/O使用狀況的類似top命令的工具,iotop可以監(jiān)控進程的I/O信息。它是Python語言編寫的,與iostat工具比較,iostat是系統(tǒng)級別的IO監(jiān)控,而iotop是進程級別IO監(jiān)控。
2.1 安裝:
yum install iotop
2.2 常用參數(shù):
| 選項 | 解釋 | 示例 |
|---|---|---|
| -o | 只顯示有I/O操作的進程或線程,即存在disk read或disk write | iotop -o |
| -b | 批量顯示,無交互,主要用于記錄到文件 | iotop -b >> iotop.txt |
| -n NUM | 顯示NUM次,主要用于非交互模式 | iotop -b -n 3 >> iotop.txt |
| -d SEC | 間隔SEC秒更新一次數(shù)據(jù),默認1s | iotop –d 5 |
| -p PID | 列出監(jiān)控的進程,默認全部 | iotop –p 3313(僅監(jiān)控3313進程) |
| -u USER | 列出需要監(jiān)控的用戶,默認所有用戶 | iotop –u oracle |
2.3 iotop的快捷鍵:
左右箭頭:改變排序,默認按照IO使用百分比排序
r :反轉(zhuǎn)排序結(jié)果 o :只顯示有I/O的進程和線程 a :顯示累積使用量 q :退出
2.4 iotop工具展示: 解釋:
第一行是總的I/O統(tǒng)計信息,描述總的I/O讀寫情況。 第二行是列名稱,從左到右依次是: TID :線程編號 PRIO :未知 USER:用戶信息 DISK READ :磁盤讀,以對用戶友好的方式顯示 DISK WRITE:磁盤寫,以對用戶友好的方式顯示 SWAPIN : swap空間使用百分比 IO> :IO使用百分比,“>”代表以IO排序,可以使用左右光標鍵調(diào)整使用哪一列來排序 COMMAND :進程發(fā)起程序名
2.5 舉例:
只顯示正在產(chǎn)生I/O的進程
iotop -o
當前文章:Linux系統(tǒng)下查看磁盤IO使用情況
文章URL:http://www.dlmjj.cn/article/dhpjhgp.html


咨詢
建站咨詢
