如何计算保持 Linux/ssh 响应所需的内存量?

如何计算保持 Linux/ssh 响应所需的内存量?

我有一个在多台机器上运行的任务接收守护进程。客户端发送任意任务,然后在服务器上执行,有时占用一点内存,有时推高到我在守护进程配置中设置的限制(任务永远不会超过限制,即使 Linux 的过度提交行为也是如此)。我希望将限制保持在尽可能高的高度,以便允许任务运行和完成,但不要太高以至于达到限制时机器完全没有响应,也不要太高以至于任务实际上会通过拖慢机器的速度而减慢速度。我希望始终能够通过 ssh 进入。

是否有公式或技巧可用于确定设置多大的限制?我现在最好的想法是,在不运行任何任务的情况下重新启动机器,并检查内存使用情况(不计算缓存/缓冲区),并假设这是保持运行所需的内存。然后,我会从机器的物理内存中减去该值,以获得限制。

答案1

第一个答案:没有简单的方法可以做到这一点。

虽然可以做到,但您需要做的是确定在系统变得无响应之前您的程序可以使用多少内存。然而,这不仅仅是内存问题,也是 CPU 和带宽问题。因为,即使只有几个客户端,如果您仅使用拨号连接,超级计算机也会对 ssh“无响应”。

最好的方法是反复试验。选择一个合适的起点,然后添加,直到您开始看到比正常响应更长的响应。

所以如果你想要一个一般性的答案,当系统完全耗尽内存并崩溃时,它将变得无响应......

希望这可以帮助!

相关内容