為什麼 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 內建適當地。

意識到記憶體過度使用

相關內容