Raid

RAID 6 >80% 具有小 I/O 的最高活動時間

  • November 2, 2015

我有一個 18 個磁碟的 RAID 6。它用作小圖像(5-500Kb)的儲存。它大約有 6TB 的數據。我有一個實用程序可以將該圖像讀取到記憶體中,然後通過網路發送。我注意到大約 10Mb/s 的 I/OI 有大約 100% 的活動時間。qlen 大約是 18-25,iops 大約是 500-700。是因為有很多小要求嗎?我可以改進嗎?我注意到它可能會影響使用該儲存來滿足其需求的其他應用程序。此外,某些文件的響應時間可能會增長到 700-1000 毫秒。

無法直接回答您的問題,因為驅動器性能有很多“取決於”。它很大程度上取決於 IO 類型、IO 大小、記憶體、控制器等。

尤其是,您需要了解讀取與寫入 IO 的“成本”差異。

在 RAID 6 上寫入 IO 成本很高 - 每個 IO 需要 6 個磁碟操作。這意味著您只需將主軸數除以 6 即可進行持續傳輸。您可以採取一些技巧來隱藏此問題 - 您可以積極記憶體,因為如果您能夠條帶合併,則可以大大減少該問題。如果編寫一個塊,則每個塊需要執行 6 次操作。然而,如果你可以寫一個完整的條帶,你只需要寫一個額外的 2 個塊,使它比 RAID 1 更有效率。您還可以推遲寫入,然後稍後將其發送到磁碟 - 導致寫入以“記憶體速度”完成,直到您填滿記憶體。

另一方面,讀取 IO - 需要一個操作來服務,但它必須實時完成 - 你不能像寫入一樣推遲它。這意味著您的讀取通常較慢 - 但同樣,您可以通過記憶體來部分緩解這種情況 - 但您必須利用可能的讀取模式(例如大型順序,重新讀取公共文件)。

這意味著實際上基於工作負載的理論性能和最佳性能之間存在很大差異,這就是為什麼這類問題如此難以回答的原因。

在您的情況下-您說您的 IOP 很小。10MB/秒的 500-700 IOPS 意味著您的 IO 很小。因此,如果它們是隨機模式,您可以很容易地以磁碟的最壞情況速度執行。要麼是因為您的讀取 IO 是隨機的並且無法記憶體,要麼是因為您的寫入 IO 是隨機的,因此無法合併和全條帶化到磁碟 - 一旦您的寫入記憶體填滿,您就會減速到“磁碟’ 速度,這可能非常慢。(在這種情況下,18 個磁碟為您提供了有效的 3 個主軸——儘管您得到的還不止這些)

認為可能會在控制器與磁碟的比率上沒問題,但這很難說。通常情況下,限制因素是旋轉生鏽,因為這通常是系統中最慢的部分。但是由於巨大的記憶體和有效的記憶體算法,我們得到了扭曲的期望。

所以我建議你需要檢查 - 你得到什麼樣的 IO 比率。(忽略 MB/秒,很明顯你甚至沒有接近那裡的理論水平)。檢查記憶體命中率和記憶體大小——如果可以的話,看看你的記憶體有多滿以及你得到的全條帶寫入的速率(如果你正在做大量的寫入 IO)。

還要檢查磁碟尋軌率——看看你的磁頭在磁碟上移動的頻率——同樣,密集隨機讀取模式的缺點之一是你的磁碟會抖動。

引用自:https://serverfault.com/questions/733220