我有一臺Ubuntu 16.04虛擬機,用於在計算機上並行運行32個內核(每個內核1個,由GNU並行分配)的高度計算開銷的作業。 經過數小時到數天的運行時間後,我注意到有些內核被釋放,相應的進程不再運行。根據htop
,內存(〜100GB)和交換(〜1GB)也幾乎完全滿了。但是,單獨一個過程通常需要多個GB。如果內存和交換用完了,進程是否會自動終止?
發生了什麼事?是否有活動的進程被換出並在稍後有更多內存可用時繼續運行?還是因爲交換已滿而被殺害?
我寧願手動停止一個進程並檢索中間結果,而不是在進程計算結束後終止進程並丟失任何結果。 作業正在運行時,我無法增加內存,但我只是碰到了swapspace
。在進程仍在運行時安裝它是否合理?希望自動增加交換空間並防止進程被殺害?
好的,所以沒有被'htop'運行列出的進程可能會被終止? – CGFoX
是的,這些過程都沒有了。內核應該通過syslog/journal/dmesg記錄詳細信息。 –