为什么 Linux 会终止我的进程?

为什么 Linux 会终止我的进程?
  • Redhat Linux Enterprise Server 5.10(我知道它很旧,我无法更改)
  • 该机器使用 VMTools 进行虚拟化。
  • 该虚拟机的总内存:32GB。总磁盘交换空间(虚拟内存):36GB。主驱动器上剩余 900GB。
  • 终端是 Windows 7 上的 Hummingbird Exceed v14。(我无法更改其中任何一个。)
  • 我不是真正的系统管理员,我只是在机器上编程。因此,更详细的说明会很有帮助,例如日志的位置以及要查找的内容。

当我运行某个程序从电子表格(不是那么大)读取 7000 行时,有时我的进程会被终止并且终端消失。

  • 操作系统可能会终止我的进程的原因有哪些?
  • 该虚拟机所在的物理服务器昨天非常繁忙,谁知道该服务器上的其他虚拟机使用了多少内存,但是我的 32GB 内存不应该只为我的虚拟机保留吗?
  • 当内存不足时,VMTOOLS 会查看所有虚拟机并选择随机虚拟机和随机资源占用者来杀死吗? (我的进程使用了​​ 95-99% 的 CPU 时间,但我再次认为这只是针对我的虚拟机。)

谢谢。我真的被困在这里了。


编辑1:我检查了 /var/log/syslog 并忽略了几种类型的行,grep -v以及我在启动时看到的内容,每次看起来都像是一些资源贪婪的 cron 作业正在运行。我认为这就是发生的事情。

现在我的问题是,现在我可以限制这些 cron 作业使用的内存和交换空间,这样内存就不会用完,我的终端也不会被杀死吗?我可以在操作系统级别做些什么吗?


编辑 12/7/2017:经过进一步调查top,我们距离耗尽内存、交换空间或硬盘空间还差得很远。所以还有其他事情正在发生,IT 正在调查它。

答案1

现在我的问题是,现在我可以限制这些 cron 作业使用的内存和交换空间,这样内存就不会用完,我的终端也不会被杀死吗?我可以在操作系统级别做些什么吗?

是的。仔细读设置限制(2)。您想使用ulimit bash 内置适当地。

意识到内存过度使用

相关内容