天天看點

Linux 性能調優IO篇:工具指令篇

磁盤 I/O

iostat 是最常用的磁盤 I/O 性能觀測工具,它提供了每個磁盤的使用率、IOPS、吞吐量等各種常見的性能名額,當然,這些名額實際上來自 /proc/diskstats。

# -d -x表示顯示所有磁盤I/O的名額

Linux 性能調優IO篇:工具指令篇
Linux 性能調優IO篇:工具指令篇

磁盤性能的衡量标準,必須要提到五個常見名額,也就是我們經常用到的,使用率、飽和度、IOPS、吞吐量以及響應時間等。這五個名額,是衡量磁盤性能的基本名額。

使用率,是指磁盤處理 I/O 的時間百分比。過高的使用率(比如超過 80%),通常意味着磁盤 I/O 存在性能瓶頸。

飽和度,是指磁盤處理 I/O 的繁忙程度。過高的飽和度,意味着磁盤存在嚴重的性能瓶頸。當飽和度為 100% 時,磁盤無法接受新的 I/O 請求。

IOPS(Input/Output Per Second),是指每秒的 I/O 請求數。

吞吐量,是指每秒的 I/O 請求大小。

響應時間,是指 I/O 請求從發出到收到響應的間隔時間。

這些名額中,你要注意:%util ,就是我們前面提到的磁盤 I/O 使用率;r/s+ w/s ,就是 IOPS;rkB/s+wkB/s ,就是吞吐量;r_await+w_await ,就是響應時間。在觀測名額時,也别忘了結合請求的大小( rareq-sz 和 wareq-sz)一起分析。

程序IO

從 pidstat 的輸出你能看到,它可以實時檢視每個程序的 I/O 情況,包括下面這些内容。

使用者 ID(UID)和程序 ID(PID) 。

每秒讀取的資料大小(kB_rd/s) ,機關是 KB。

每秒發出的寫請求資料大小(kB_wr/s) ,機關是 KB。

每秒取消的寫請求資料大小(kB_ccwr/s) ,機關是 KB。

塊 I/O 延遲(iodelay),包括等待同步塊 I/O 和換入塊 I/O 結束的時間,機關是時鐘周期。

iotop

它是一個類似于 top 的工具,你可以按照 I/O 大小對程序排序,然後找到 I/O 較大的那些程序。

實時顯示正在産生I/O的程序或線程

輸出5次,間隔2秒,輸出到螢幕

dstat

多功能系統資源統計生成工具( versatile tool for generating system resource statistics)。在擷取的資訊上有點類似于top、free、iostat、vmstat等多個工具的合集,官方解釋為vmstat、iostat、ifstat等工具的多功能替代品。

dstat的用法如下:

使用 dstat -h檢視全部選項,這裡不逐一列舉,下面簡單介紹下常用選項

常用選項如下:

其中有兩項功能很實用

同時檢視 CPU 和 I/O 這兩種資源的使用情況,便于對比分析。

找出系統中消耗cpu、io、記憶體最大的程序。

輸出結果解析