使用 FlashCache 改進 IO
我有一台帶有 2 個 HDD(2x 1 TB)的伺服器,在 RAID 1(SW-RAID)中執行。我想通過使用來提高 IO 性能
flashcache
。上面執行著 KVM 虛擬機,使用LVM
.對此,我有以下問題:
- 這甚至會起作用嗎?
flashcache
適用於塊設備,但是這些都是具有自己設置的虛擬機。- 我期望提高多少性能?大多數虛擬機執行網站和一些主機遊戲。
- SSD 需要多大?擁有更大的 SSD 會因為它能夠記憶體更多文件而提高性能嗎?
- 如果 SSD 死了會怎樣?會
flashcache
從傳統硬碟中檢索文件,而我可以簡單地更換 SSD 嗎?- 與and
writeback
相比會快多少?writethrough``writearound
不幸的是,我無法訪問測試系統,所以我可以
flashcache
在不解除安裝磁碟的情況下安裝在實時伺服器上嗎?我在這裡找到了一個很棒的教程,我將使用它。
Flashcache,對於那些以前沒有見過的人來說,是一種使用 SSD 驅動器擴展 Linux 塊記憶體的方法。它比執行具有半 TB RAM 的伺服器僅用於記憶體要便宜。
這甚至會起作用嗎?
它應該。Linux 塊記憶體通過記憶體訪問的塊而不是文件來工作。只要您不讓 KVM 機器直接訪問塊設備(您沒有),Linux 塊記憶體就會發揮作用。但是,如果您讓KVM 機器直接訪問塊設備,那麼答案就不太清楚了。
如果您使用文件支持的虛擬磁碟,它肯定會工作。
如果您使用的是支持 LV 的虛擬磁碟,我不知道。
我期望提高多少性能?
這是我們無法回答的。這取決於各種各樣的事情。概括地說,您將獲得最好的性能來調整您的 SSD,使其大於活動塊集。如果您獲得完美的記憶體,您的性能將類似於在 SSD 上執行整個系統。你將有效地做這件事。
SSD 需要多大?
找出您需要的確切尺寸是我們無能為力的。顯然,越多越好,但要找到記憶體 SSD 和主記憶體儲之間的確切比例並不是一件簡單的事情。
使這更複雜的是設置為立即刷新的寫入,例如某些文件系統操作和一些數據庫配置。這些寫入只會被短暫記憶體,並且它們的性能不會受到快閃記憶體記憶體的存在或不存在的任何影響。
如果 SSD 死了會怎樣?
當您告訴 Linux 刪除記憶體但有一點不同時,也會發生同樣的事情。使用 drop-caches,塊記憶體中任何未刷新的寫入都將刷新到磁碟。SSD 消失時會發生什麼取決於記憶體模式:
直寫:所有寫入都並行寫入記憶體和主記憶體儲,因此 SSD 突然失去導致 VM 出錯的可能性非常小。
Writearound:所有寫入都寫入主記憶體儲,並且僅在讀取時記憶體。虛擬機中沒有出錯的機會。
回寫:所有的寫入都先到記憶體,然後在後台寫入主記憶體儲。如果 SSD 發生故障,最有可能導致 VM 出錯,而且我不會在生產中使用這種模式。
與 writethrough 和 writearound 相比,writeback 會快多少?
看你寫多少。如果您的寫入定期使主記憶體儲飽和,則性能提升可能相當顯著。如果您主要通過一些寫入來閱讀,那麼您可能不會注意到改進。
此外,寫回對你正在做的事情來說是一個糟糕的策略,所以不要使用它。