FreeBSD 中是否存在交换空间泄漏?

FreeBSD 中是否存在交换空间泄漏?

我有一个具有 16G RAM 和 23G Swap 的系统(ZFS 中的 6 个 3TB 磁盘),目前交换率为 98%,但我只能看到使用了 5G 的 RAM。

我已经检查了所有可能的资源来查找谁在使用交换空间。

ps -vax | awk 'NR==1{print} {VSZ+=$7;RSS+=$8}END{print VSZ,RSS}'

  PID STAT         TIME  SL  RE  PAGEIN    VSZ    RSS LIM TSIZ  %CPU %MEM COMMAND

6106336 894176

各种其他工具(top -w ... sort SWAP)也没有提示什么使用了 23G 交换空间。

swapoff -a 失败并显示cannot allocate memory.

我想避免重新启动,所以有什么提示如何恢复(现在)缓慢的机器吗?

(freenas 11.2-稳定 FreeBSD)

答案1

我在 FreeBSD 11.3 服务器(32 GB RAM,ZFS)上运行 Atlassian Confluence 时遇到了这个问题。罪魁祸首原来是 JRE 调出数据空间,因为不允许它使用足够的 RAM。这是一个非常奇怪的效果。一旦我将分配的内存分配给 Java VM,它就停止调出并吸收所有交换空间。它还提高了应用程序的响应速度。

目前还不完全清楚为什么它没有出现在pstat和 的内存使用报告中top,并且系统同时报告大量可用 RAM。

因此,如果您正在运行大型 Java 应用程序,请确保正确调整 JVM 以允许它使用所需的资源。

相关内容