对于任何命令都出现“bash:fork:无法分配内存”——如何在操作系统级别防止这种情况发生?

对于任何命令都出现“bash:fork:无法分配内存”——如何在操作系统级别防止这种情况发生?

我正在测试一台 Ubuntu 16.04 机器如何处理内存不足的情况,并且有几个挂起的作业几乎耗尽了服务器上的所有 RAM。昨晚下班时,我仍然可以运行正常的 bash 命令。早上(没有人对服务器进行任何操作)所有命令(ps、、等)freels出现以下错误:

-bash: fork: Cannot allocate memory

我最终能够运行jobskill %1恢复机器。幸运的是,我保持 SSH 会话打开,因为进一步的 SSH 连接失败(客户端在身份验证后根本没有显示命令提示符)。

事实上,常规的用户程序可以有效地使整个服务器瘫痪,如果没有现有的 SSH 会话,就必须硬重启,这是高度令人担忧!我的理解是,Linux(或任何操作系统)应该在整个系统进入这种不可用状态之前终止进程以释放 RAM。我该如何让它做到这一点?

相关内容