负载为 4000,CPU 耗尽,远程重启无济于事

负载为 4000,CPU 耗尽,远程重启无济于事

我有一台 Debian 9 服务器,负载超过 4000。“top”显示有 18,132 个进程处于休眠状态。

最初,我看到许多“ps”进程,有数百个,因此我按名称将它们全部终止。

我目前没有看到任何有问题的进程,但负载仍然存在。此外,我无法进行远程重启。它声称系统正在关闭以进行重启,但什么也没发生。如果我打开另一个终端,它仍然可以工作。

除了让某人现场重新启动之外,我该如何摆脱这些备份进程?

答案1

休眠任务不会增加您的平均负载。正在运行的任务会增加,此外在 Linux 上,TASK_UNINTERRUPTIBLE 通常是 I/O

由于调度程序优先考虑交互用户,因此新 shell 的响应速度可能还算可以接受。但是执行大量工作时,速度就会变得非常慢。

查找并停止启动更多此类进程的脚本或服务。然后终止任务。这可能需要您最喜欢的任务管理脚本(pspkill)以及对无响应系统的耐心。

干净重启将使系统响应,但可能也需要很长时间才能获得 CPU 时间来关闭几千个任务。使用远程带外方式关闭电源,无论是物理机的 BMC 还是虚拟机管理程序控制台。

预防措施包括每个用户的任务限制。对于 Linux 上的 pam_limits, 文件nproc中的行/etc/security/limits.d/

相关内容