我有一个运行 linux 3.x 的 64 位服务器,报告“bash: fork: 无法分配内存”。该服务器有足够的 RAM (64G) 和交换 (128G),我看不出某个特定进程是罪魁祸首(没有明显的内存泄漏)。
我不受“ulimit”的限制,因为在这个 shell 下没有任何东西运行,并且问题也以 root 身份存在。即使输入 top 或 cat /proc/whatever 95% 的时间都会触发“bash: fork: 无法分配内存”,调试服务器也会稍微复杂一些。
我已经做了一些检查: - 剩余一些内存(总分配空间小于交换空间)。 - 没有 ulimit - 没有明确的问题,日志中没有消息,dmesg 中没有消息 - 虚拟内存未耗尽(据我检查)
当我再次遇到同样的问题时,我应该检查什么?除了 ulimit / 有限的交换空间 / 未耗尽的虚拟空间之外,可能无法分配内存的原因是什么?当然,重新启动解决了这个问题(暂时),但我对这个问题感到非常惊讶。
答案1
我认为该问题与 Windows 安装请求出错有关。当 Unix 分叉进程从 Windows 返回消息时,似乎出现了某种错误。
这会影响直接或间接请求资源“A”的其他领域。我最近看到了与虚拟机相关的事件。