我正在运行一个带有命令的 shell 脚本来连续运行几个内存密集型程序(2-5 GB)。当我回去检查我的脚本的进度时,我惊讶地发现我的一些进程是Killed
,正如我的终端向我报告的那样。在后来Killed
启动的程序之前已经连续完成了几个程序,但是之后的所有程序都因分段错误而失败(这可能是由于我的代码中的错误,也可能不是由于我的代码中的错误,请继续阅读)。
我查看了我正在使用的特定集群的使用历史记录,发现有人开始同时运行多个内存密集型进程,这样做耗尽了集群可用的实际内存(甚至可能是交换空间)。尽我所能,这些内存密集型进程在我的程序出现问题的同时开始运行。
一旦开始耗尽内存,Linux 是否有可能杀死我的程序?我后来遇到的分段错误是否可能是由于缺少可用于运行我的程序的内存(而不是我的代码中的错误)?