Memory

如果我從 Ubuntu 伺服器釋放交換記憶體,是否會終止任何正在執行的程序?

  • September 22, 2019

由於以下原因,我想到了這個問題(這個問題的標題)。如果有人給出了這個原因的解決方案,那麼我不需要釋放交換記憶體。

原因:

安裝 Jenkins 後,它執行良好。但是使用幾分鐘(或幾小時)它會自動停止。當我(通過命令sudo service jenkins restart)重新啟動服務時,它再次開始工作。同樣,經過一段時間後,它會再次自動停止(即,我在目標 url 中找不到 jenkins MY_IP_ADDERSS:8080),但每當我檢查 jenkins ( sudo service jenkins status) 的狀態時,它就會顯示active (exited)

我檢查了我的伺服器記憶體。大約有 20% 的可用 RAM 記憶體,但交換記憶體已 100% 滿。估計是那個swap記憶體的問題(不知道是對是錯)

如果有任何解決此問題的方法,請先幫助我。

現在我的問題是:

如果有任何問題如果我釋放我的交換記憶體?

如果我嘗試這樣做,正在執行的程序(或其中的任何程序)會被殺死嗎?

請幫忙,這是我在這個網站上的第一個問題。

當存在記憶體壓力時,使用分頁空間,AKA 交換空間。由於永久儲存比 DRAM 慢得多,因此對於大多數工作負載來說,過度分頁是糟糕的性能。如果 RAM + 分頁空間完全耗盡,在 Linux 上,OOM 殺手將嘗試找到一個繁重的分配任務並將其殺死。另一種方法是恐慌並重新啟動。

一些緩慢的調出速度是可以接受的。但是,您的程序神秘地死了。此外,Linux 記憶體管理不會將分頁空間填充到 100% 並將 RAM 填充到 80%,這會回收大量記憶體。通過殺死一個任務;如果您查看日誌文件,您會發現 OOM 殺手。

OOM 殺手是容量規劃過程失敗的症狀。解決方案是:

  • 減少應用程序的記憶體消耗。例如,減少數據庫的共享記憶體,或減少執行時 (JVM) 的堆。
  • 增加分配給主機的 RAM。DRAM 相對便宜,甚至比固態儲存還要快。

引用自:https://serverfault.com/questions/985155