Solaris

zfs 和 solaris11:如何減少記憶體消耗?

  • February 26, 2018
sudo echo ::memstat | sudo mdb -k
Usage Type/Subtype                      Pages    Bytes  %Tot  %Tot/%Subt
---------------------------- ---------------- -------- ----- -----------
Kernel                                 291425     1.1g 17.5%
ZFS                                    844447     3.2g 50.7%

zfs 超過 3G,但我已將 ARC 設置為消耗最大 2G

cat /etc/system
set zfs:zfs_arc_max = 2147483648
set zfs:zfs_arc_min = 1073741824

我當然重啟了。

版本是 11.4 測試版

zfs_arc_max顯然已被棄用。請參閱https://docs.oracle.com/cd/E53394_01/html/E54818/chapterzfs-3.html#scrolltoc

ZFS 記憶體管理參數

本節介紹與 ZFS 記憶體管理相關的參數。

user_reserve_hint_pct

描述

通知系統為應用程序保留了多少記憶體,因此限制了 ZFS ARC 記憶體可以使用的記憶體量,因為記憶體會隨著時間的推移而增加。

通過此參數,管理員可以為未來的應用程序需求保留大量可用的可用記憶體。user_reserve_hint_pct 參數旨在代替 zfs_arc_max 參數來限制 ZFS ARC 記憶體的增長。

注 - 查看 My Oracle Support (MOS) 中的文件 1663862.1,Oracle Solaris 11.2 中 ZFS 和應用程序之間的記憶體管理,以獲取有關調整此參數的指導。數據類型

無符號整數(64 位)

預設

0

如果使用專用系統執行一組具有已知記憶體佔用的應用程序,請將參數設置為該佔用的值,例如 Oracle 數據庫的 SGA 之和。

要為參數分配值,請執行 My Oracle Support (MOS) 中的 Document 1663862.1 中提供的腳本。要使調整在重新啟動後持續存在,請參閱腳本輸出以獲取有關使用 -p 選項的說明。

範圍

0-99

單位

百分

動態的

是的

您可以在正在執行的系統上動態調整此參數的設置。

何時改變

對於向上調整,如果確定初始值隨著時間的推移不足以滿足應用程序需求,或者如果系統上的應用程序需求增加,則增加該值。僅在計劃的系統維護視窗內執行此調整。更改值後,重新啟動系統。

對於向下調整,如果應用要求允許,請減小該值。確保僅使用少量減小值,一次不超過 5%。

承諾水平

不穩定

zfs_arc_max

描述

確定 ZFS 自適應替換記憶體 (ARC) 的最大大小。但是,請參閱user_reserve_hint_pct.

在我看來,這是一個巨大的倒退。硬限制被單純的“提示”所取代。限制 可能有非常、非常、非常好的理由。

(我想知道是否真的存在未記錄的 ARC 硬限制。Sun/Oracle 有使用 ZFS 做類似事情的歷史。“ZFS 在磁碟上始終是一致的!你不需要fsck或任何調試工具。不,你不要。我們說你不要。**為什麼哦為什麼你不相信我們?!?!**哦,嗯,啊,是的,這裡是zdb。我們已經在內部使用它多年,所以它非常成熟…… “)

引用自:https://unix.stackexchange.com/questions/426642