最近我们正在尝试在运行 256RAM 内存的机器上调整 ZFS。
我们当前的 ARC ZFS 内存变量最大为 255Gb,最小为 64Mb。
我们面临的一个主要问题是,在高峰时段,工作流程因内存不足而中止。 (有几个流程需要高达 55G 内存)
当尝试将最大值限制为 4G 时,我们面临性能下降的问题。
输出
uname -a
SunOS xxxxx 5.11 11.1 sun4v sparc sun4v
Publisher: solaris
Version: 0.5.11 (Oracle Solaris 11.1 SRU 1.4)
Build Release: 5.11
Branch: 0.175.1.1.0.4.0
psrinfo -pv
The physical processor has 2 cores and 16 virtual processors (0-15)
The core has 8 virtual processors (0-7)
The core has 8 virtual processors (8-15)
SPARC-T4 (chipid 0, clock 2848 MHz)
我期待着一个经验法则来配置最小/最大弧内存值。
如果弧获得固定数量的内存(最小最大相同),或者应该检查每个时隙的最大内存(h 或 1/2h )并使用该值添加 ~ +10% 的上限
编辑1 这是安装了 informatica powervemter 9.6.1 的应用程序服务器
我们目前的命中率在96%以上
答案1
仍然建议您提供额外的信息,以便您获得更好的建议。
首先,您可能需要考虑升级到 11.3 以获得一些附加功能和 ZFS 性能调整: https://blogs.oracle.com/zfs/welcome-to-oracle-solaris-113-zfs
您没有注意到安装了哪个 SRU,但 Solaris 11.2 和 Solaris 11.1 SRU 20.5 或更高版本包含一个新的可调参数 user_reserve_hint_pct,该参数提供了有关要保留多少内存供应用程序使用的提示,从而限制了可以使用的内存量ZFS ARC 缓存。
你可以查看 Joerg 的博客: http://www.c0t0d0s0.org/archives/7757-user_reserve_hint_pct.html,或直接查看 Oracle Solaris 11.x 中 ZFS 和应用程序之间的 MOS DOC 内存管理(文档 ID 1663862.1)。