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测试版
答案1
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) 中的文档 1663862.1 中提供的脚本。要使调整在重新启动后保持不变,请参阅脚本输出以获取有关使用 -p 选项的说明。
范围
0-99
单位
百分
动态的
是的
您可以在运行的系统上动态调整此参数的设置。
何时改变
对于向上调整,如果确定初始值随着时间的推移不足以满足应用程序要求,或者系统上的应用程序需求增加,请增加该值。仅在计划的系统维护时段内执行此调整。更改该值后,重新启动系统。
对于向下调整,如果应用程序要求允许,请减小该值。确保仅少量减少该值,一次不超过 5%。
承诺水平
不稳定
...
zfs_arc_max
描述
确定 ZFS 自适应替换缓存 (ARC) 的最大大小。不过,请参阅
user_reserve_hint_pct
。
在我看来,这是一个巨大的倒退。硬限制被纯粹的“提示”所取代。可能有非常非常充分的理由难的限制。
(我想知道是否真的存在未记录的 ARC 硬限制。Sun/Oracle 有使用 ZFS 做类似事情的历史。“ZFS 在磁盘上始终保持一致!您不需要fsck
或任何调试工具。不,您我们说过你不会。为什么哦为什么你不相信我们?!?!哦,嗯,啊啊,是的,这里是zdb
。我们已经在内部使用它很多年了,所以它已经相当成熟了......”)