在系统加载时保持Linux远程控制台的响应

当系统处于高负载状态时,是否可以保持Linux远程控制台的响应(我使用的是SSH,但是本地caching也很慢)。

我希望能够远程login到服务器来监视它,即使系统似乎是过载。

如果服务器即将交换自己的死亡,并有大量的进程争取CPU和其他资源,那么这是一件有点困难的事情。 有时如果服务器超负荷,甚至一个新的SSH连接可能很难build立。

在这样的情况下,我通常有另一台服务器在同一个networking,我有一个从服务器到超载服务器在屏幕上的SSH连接。 当过载的服务器变得太重,我SSH到另一台服务器,并恢复我的屏幕会话。

但是你也有其他select。

可以使用cpusets内核function将进程分区到多个域。 这样,你可以给你的应用程序一个域,并允许它只使用一些内核和一些内存。 然后,您可以创build另一个系统pipe理域,所以你应该有一些空间为您的SSH需要。

在做这个之前,你应该确定高系统负载从哪里来。 这是因为CPU使用率非常高吗? 应用程序是否不断访问磁盘并使I / O操作非常慢? 应用程序吃掉所有的RAM和交换导致缓慢? 内存/其他资源的使用是否可以预期,或者应用程序中是否有潜伏的bug,导致它突然吃掉所有的RAM或CPU?

如果是后者,那么你可以安装psmon或者类似的软件。 例如,psmon可以监视您的系统并拍摄并重新启动监视的进程(如果超过X兆字节的RAM或经常占用CPU的Y%以上)。

如果预计资源使用率高,那么你应该考虑升级你的硬件。

这可能是棘手的,取决于什么高负载意味着你。 在服务器处于高负载之前最好login。 由于这不是一个选项(不能整天logging),我会尝试限制普通用户一点点(只是让你login并保存一天)。

我会build议捣鼓/etc/limits.conf (请参阅man limits.conf )以限制内存并提高非root用户的优先级。 所以pipe理用户仍然有资源窗口login。