軟體 RAID0 的 SSD 會幫助還是阻礙有用的 CPU 工作吞吐量的最大化?
我的問題在標題中……這裡有一些背景:
$$ OS is Linux. $$ [更新: 此 RAID0 的內容是多餘的(從 SCM 同步)。我不擔心數據失去的風險增加。]
[**更新2:**實際上,我可能會在這里分裂頭髮。但除了嘗試解決實際問題之外,我還想提高/確認我對理論的理解。]
我有一個自動建構伺服器,我用它來編譯一個非常大的項目的原始碼,我希望最大限度地減少我的建構時間。我認為最好的建構時間將發生在機器在整個建構過程中保持 CPU 綁定(即所有核心始終以 100% 載入)時。這當然是一個理想化的目標,只能是漸近地逼近。
從建構的行為(主要是觀察 mpstat 的輸出)可以看出,我的目標的最大敵人是 %iowait。有時我看到一個不可忽略的 %idle,我認為這是核心調度程序的適度故障,和/或 Make 並行建構能力的低效率。但這通常不足以讓我擔心。另一方面,%iowait 經常變得嚴重超大……我的 CPU 負載急劇下降。我相信這通常發生在某些執行緒試圖將大型庫連結(寫入)到(軟體控制的
$$ * $$) RAID0,而其他執行緒正在嘗試讀取原始碼。 (請暫時忽略我可以將輸出寫入移動到與原始碼不同的捲和控制器的事實。這是計劃好的。)
我正在考慮切換到 SSD。但在那種情況下,我認為最好放棄軟體RAIDing
$$ * $$的驅動器。我的直覺是:SSD 的訪問時間如此之快,傳輸時間如此之快,以至於 4 個 SSD 的簡單 LVM 將我的 %iowaits 壓縮到幾乎沒有,然後我的核心將不斷地釘住,做最大有用的工作量。 …在這種情況下,4 個 RAIDed SSD 的軟體控制會不必要地增加我的 %sys,而留給 %user 的會減少。我的核心仍然會被固定,但完成的“有用”工作會更少。
對於這個特定的目標,我對軟體 RAID0 的 SSD 的直覺是否正確?
$$ * $$額外問題:主機板上有一個 RAID 控制器,但我的理解是它只是“假 RAID”,在 BIOS 選項 ROM 中提供捲管理功能,否則只是軟體 RAID。所以我不使用它。但是,真正的硬體 RAID 控制器在這裡會有所幫助嗎?很明顯,我可以很容易地將我的核心釘在這台機器上。我就是受不了。我相信 SSD 將主要解決這個耐力問題,我發現自己想知道是否即使是真正的硬體 RAID 控制器也可以改進這一點。
現代硬體上的 Linux 下的軟體 RAID 很好……即使使用 SSD。它不會對您的 CPU 提出巨大的要求。真的。
哎呀,對於高級Fusion-io 固態硬碟,推薦和常見的部署方案是使用軟體 RAID。
我根本不會擔心這個。
儘管我已經接受了上面@ewwhite 的回答,但我還是想回來報告我剛剛在網路上其他地方發現的一個稍微矛盾的答案,該答案基於經驗數據:
我們的測試結果顯示,在 RAID 0 中使用 (2) 個 SSD 時,讀取次數增加了 16%,寫入性能下降了 2%。讀取帶來的性能提升足以保證將 RAID 0 用於大多數用途,但如果您執行的應用程序執行的寫入操作多於讀取操作,您可能會從單獨使用數據磁碟而不是使用RAID 0 選項。
(我的 RAID 閱讀多於寫作,所以@ewwhite 的回答仍然適合我的需要。)