ZFS(在 Linux 上)對非檔案伺服器電腦的記憶體需求

ZFS(在 Linux 上)對非檔案伺服器電腦的記憶體需求

關於 ZFS 的許多資料都提到,基本上可以投入的記憶體越多越好。然而,我計劃在具有 16GB RAM 的筆記本上使用 ZFS —— 雖然這對 ZFS 來說應該足夠了,但我希望能夠使用計算機,不提供其中的文件;換句話說,我希望應用程式能夠使用(至少大部分)該內存,而不是檔案系統實作。

那麼,將其表述為一個問題,當 ZFS 在也運行記憶體使用量高的非 IO 敏感應用程式的電腦上運行時,我該如何解釋 ZFS 的記憶體要求?

答案1

根據以下要求,需要 2GB 內存Linux 上的 ZFS 常見問題解答

您也可以透過設定參數來調整記憶體需求zfs_arc_max

# cat /etc/modprobe.d/zfs.conf
options zfs zfs_arc_max=4294967296

其中有/sys顯示zfs設定的參數:

/sys/module/zfs/parameters/zfs_arc_max
/sys/module/zfs/parameters/zfs_arc_min

您也可以使用以下zfs primarycache設定來設定快取哪些檔案系統:

# zfs set primarycache=[all none metadata] zpool/fs

答案2

雖然 ZFS 將使用它認為有用的盡可能多的記憶體來快取內容,但如果有需要,它會將其返還給應用程式。

請注意,其他檔案系統也將佔用所需的記憶體作為快取。主要差異在於記憶體可立即供應用程式使用。使用 ZFS,會有輕微的延遲,但這應該沒有什麼區別,除非您有一個應用程式想要比 ZFS 釋放記憶體的速度更快,或者考慮到報告的可用記憶體(+緩衝區/快取)並拒絕啟動如果沒有足夠的可用空間。

在這種情況下,如果您事先知道應用程式所需的記憶體佔用量,則可以設定 arc max size 調整值以保留一些 RAM。

答案3

我在具有 8GB RAM 的伺服器上的 Linux 上運行 zfs。正如文檔所說,它確實消耗了大部分記憶體。但是,我注意到運行記憶體密集型應用程式沒有效能差異。看起來,如果您需要內存,zfs 很樂意將其放棄以供使用。不過,請習慣看到可笑的記憶體使用百分比。

相關內容