ZFS 性能:我需要在池或文件系統中保留可用空間嗎?
我知道 ZFS 的性能在很大程度上取決於可用空間的數量:
保持池空間使用率低於 80% 以保持池性能。目前,當池非常滿且文件系統頻繁更新時(例如在繁忙的郵件伺服器上),池性能可能會下降。完整的池可能會導致性能損失,但不會導致其他問題。
$$ … $$請記住,即使大部分是 95-96% 範圍內的靜態內容,寫入、讀取和重新同步的性能也可能會受到影響。ZFS_Best_Practices_Guide,solarisinternals.com (archive.org)
現在,假設我有一個 10T 的 raidz2 池,託管一個 ZFS 文件系統
volume
。現在我創建一個子文件系統volume/test
並給它預留5T。然後我將每個 NFS 的兩個文件系統都掛載到某個主機並執行一些工作。我知道我不能寫
volume
超過 5T,因為剩下的 5T 保留給volume/test
.我的第一個問題是,如果我
volume
用 ~5T 填充我的掛載點,性能會如何下降?它會下降嗎,因為該文件系統中沒有用於 ZFS 的寫時複製和其他元數據的可用空間?還是會保持不變,因為 ZFS 可以使用為 保留的空間內的可用空間volume/test
?現在是第二個問題。如果我按如下方式更改設置,會有什麼不同嗎?
volume
現在有兩個文件系統,volume/test1
和volume/test2
. 兩者均獲得 3T 預留(但沒有配額)。現在假設,我將 7T 寫入test1
. 兩個文件系統的性能是相同的,還是每個文件系統的性能都不同?它會下降,還是保持不變?謝謝!
是的。您需要在池中保留可用空間。它主要用於寫時複製操作和快照。使用率在 85% 左右時性能下降。你可以走得更高,但有一定的影響。
不要亂預訂。尤其是 NFS。這不是必需的。也許對於 zvol,但不是 NFS。
不過,我沒有看到混亂。如果你有 10T,不要使用超過 85%。適當調整你的份額,使用配額來限制它們的使用。或者不使用任何配額並監控您的整體池使用情況。