zfs 和 solaris11:如何減少記憶體消耗?
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
。我們已經在內部使用它多年,所以它非常成熟…… “)