亚洲熟女综合色一区二区三区,亚洲精品中文字幕无码蜜桃,亚洲va欧美va日韩va成人网,亚洲av无码国产一区二区三区,亚洲精品无码久久久久久久

如何監(jiān)測 Linux 的磁盤 I/O 性能

在我之前的文章:《探討 Linux 的磁盤 I/O》中,我談到了 Linux 磁盤 I/O 的工作原理,我們了解到 Linux 存儲系統(tǒng) I/O 棧由文件系統(tǒng)層(file system layer)、通用塊層( general block layer)設(shè)備層(device layer)構(gòu)成。

其中,通用塊層是 Linux 磁盤 I/O 的核心。向上,它為訪問文件系統(tǒng)和應(yīng)用程序的塊設(shè)備提供了標(biāo)準(zhǔn)接口;向下,它將各種異構(gòu)磁盤設(shè)備抽象為一個統(tǒng)一的塊設(shè)備,并響應(yīng)文件系統(tǒng)和應(yīng)用程序發(fā)送的 I/O。

在本文中,我們來看看磁盤的性能指標(biāo)以及如何查看這些指標(biāo)。

Linux 磁盤性能指標(biāo)

在衡量磁盤性能時,我們經(jīng)常提到五個常見指標(biāo):利用率、飽和度、IOPS、吞吐量和響應(yīng)時間。這五個指標(biāo)是衡量磁盤性能的基本指標(biāo)。

  1. 利用率(Utilization):磁盤處理 I/O 的時間百分比。過度使用(如超過 80%)通常意味著磁盤 I/O 存在性能瓶頸。
  2. 飽和度(Saturation):指磁盤處理 I/O 的繁忙程度。過度飽和意味著磁盤存在嚴(yán)重的性能瓶頸。當(dāng)飽和度為 100% 時,磁盤無法接受新的 I/O 請求。
  3. IOPS(Input/Output Per Second):指每秒 I/O 請求的數(shù)量。
  4. 吞吐量(Throughput):每秒 I/O 請求的大小。
  5. 響應(yīng)時間(Response time):指發(fā)送 I/O 請求和接收響應(yīng)之間的間隔時間。

這里需要注意的是,關(guān)于利用率,我們只考慮有無 I/O,而不考慮 I/O 的大小。也就是說,當(dāng)利用率為 100% 時,磁盤仍有可能接受新的 I/O 請求。

一般來說,在為應(yīng)用選擇服務(wù)器時,首先要對磁盤的 I/O 性能進(jìn)行基準(zhǔn)測試,這樣才能準(zhǔn)確評估磁盤性能,以判斷是否能夠滿足應(yīng)用的需求。

當(dāng)然,這需要你在隨機讀、順序讀隨機寫、順序?qū)?/strong>等各種應(yīng)用場景下測試不同 I/O 大?。ㄍǔJ?512B ~ 1MB 之間)的性能。

磁盤 I/O 觀察

首先要觀察的是每個磁盤的使用情況。iostat 是最常用的磁盤 I/O 性能觀察工具。它提供了各種常用性能指標(biāo),例如每個磁盤的利用率、IOPS?和吞吐量。當(dāng)然,這些指標(biāo)實際上來自?/proc/diskstats。

以下是?iostat?的輸出示例:

如何監(jiān)測 Linux 的磁盤 I/O 性能

在上述指標(biāo)中,您需要注意的是:

  • %util?是我們前面提到的磁盤 I/O 使用情況
  • r/s?和?w/s?是 IOPS
  • rkB/s?和?wkB/s?是吞吐量
  • r_await?和?w_await?是響應(yīng)時間

您可能已經(jīng)注意到?iostat?不能直接獲取磁盤的飽和度。事實上,通常沒有什么簡單的方法可以測量飽和度。但是,您可以將觀察到的平均請求隊列長度完成讀寫請求的等待時間基準(zhǔn)測試(例如通過 fio)的結(jié)果進(jìn)行比較,以綜合評估磁盤飽和度。

進(jìn)程 I/O 觀察

除了每個磁盤的 I/O 情況,每個進(jìn)程的 I/O 情況也是大家關(guān)注的重點。

上面提到的?iostat?只提供了觀察磁盤的整體 I/O 性能數(shù)據(jù)。缺點是無法知道哪些進(jìn)程正在讀寫磁盤。要觀察進(jìn)程的 I/O,還可以使用?pidstat?和?iotop?工具。

例如,要使用?pidstat

如何監(jiān)測 Linux 的磁盤 I/O 性能

從?pidstat?的輸出可以看出,它可以實時查看每個進(jìn)程的 I/O 情況,這包括以下內(nèi)容:

  • 用戶 ID (UID) 和進(jìn)程 ID (PID)。
  • 每秒讀取的數(shù)據(jù)大小 (kB_rd/s),以 KB 為單位。
  • 每秒發(fā)出的寫請求數(shù)據(jù)的大小(kB_wr/s),單位為KB。
  • 每秒取消寫入請求的數(shù)據(jù)大小 (kB_ccwr/s),以 KB 為單位。
  • 塊 I/O 延遲 (iodelay),包括等待同步塊(synchronized block)I/O 和換入塊(swap-in block)I/O 完成的時間,以時鐘周期為單位。

除了使用?pidstat?實時查看進(jìn)程磁盤 I/O 外,還有一個磁盤性能分析的常用方法是根據(jù) I/O 大小對進(jìn)程進(jìn)行排序。為此,我推薦?iotop?工具。它是一個類似于?top?的工具,您可以按 I/O 大小對進(jìn)程進(jìn)行排序,并找到具有更大 I/O 的進(jìn)程。

如何監(jiān)測 Linux 的磁盤 I/O 性能

從該輸出可以看到,前兩行分別代表進(jìn)程的磁盤讀寫總大小磁盤的實際讀寫總大小。由于緩存、緩沖區(qū)I/O 合并等因素,它們可能不相等。

剩下的部分從各個角度代表了進(jìn)程的 I/O 情況,包括?線程 ID、I/O 優(yōu)先級、每秒磁盤讀取大小、每秒磁盤寫入大小、換入百分比等待 I/O 時鐘百分比

結(jié)論

在本文中,我介紹了 Linux 磁盤 I/O 的性能指標(biāo)和查看性能工具。我們通常使用?IOPS吞吐量、利用率、飽和度響應(yīng)時間等幾個指標(biāo)來評估磁盤的 I/O 性能。

可以使用?iostat?獲取磁盤的 I/O 情況,也可以使用?pidstat、iotop?等觀察進(jìn)程的 I/O 情況。但在分析這些性能指標(biāo)時,要注意結(jié)合讀寫比率、I/O 類型、I/O 大小等綜合分析。

鏈接:https://blog.devgenius.io/linux-disk-i-o-performance-1e920faba23

(版權(quán)歸原作者所有,侵刪)

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國內(nèi)好評如潮的Linux云計算運維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開發(fā)專業(yè)人才培訓(xùn)機構(gòu)!