zfs和solaris11:如何减少内存消耗?

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测试版

答案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。我们已经在内部使用它很多年了,所以它已经相当成熟了......”)

相关内容