如何减少内存RAM中的负载

如何减少内存RAM中的负载

我的 Ubuntu 20.04 服务器有许多加密货币守护进程,我在这台服务器上只有这种负载。有时服务器会耗尽这些守护进程的内存,即使我在交换分区中有足够的内存,这也是一个例子:

在此处输入图片描述

我猜服务器内存耗尽是因为 RAM 几乎已满,我想减少内存 RAM 中的负载,将某些内容更改为交换分区,这可能吗?或者还有其他最佳方法可以帮助服务器避免内存耗尽?

谢谢。

编辑:

free -h输出:

              total        used        free      shared  buff/cache   available
Mem:           62Gi        60Gi       318Mi       0.0Ki       2.1Gi       1.7Gi
Swap:         381Gi       121Gi       260Gi

sudo sysctl vm.swappiness输出:

vm.swappiness = 70

答案1

我不确定这是哪个实用程序的快照,但分析内存使用情况很棘手。例如,Linux 会将内容缓存在内存中,因为……嘿,为什么不呢。所以如果我运行:

find . -type f | xargs cat >/dev/null

当它完成后,您可能会发现所有内存都被“使用”了,因为它正在缓存整个文件系统。然而它并没有真正被使用,因为它缓存的东西您再也不需要了。所以您往往想要分析的不是使用了多少内存,而是您的交换分区受到的打击有多大。如果它没有受到严重打击,那么您可能有足够的内存。您可以尝试禁用交换。没有它服务器运行良好吗?也许你有足够的内存。不过我还是会启用交换,因为它可以摆脱很少使用的东西。至于控制交换,在大多数情况下,您无法控制放在那里的东西,内核会为您做这件事。它通常做得很好。

相关内容