我目前正在我的筆記型電腦上編碼:4 GB 內存,從來沒有使用超過2.5-3GB,但有時,我會弄亂我的程序,運行它們時會出現內存洩漏,並且它們會使計算機在嘗試寫入時凍結在交換文件中(與交換性的低值有關)。它讓我有幾次差點丟失重要數據,所以我想讓我的計算機以另一種方式工作:沒有交換文件,正如我所說,在使用它和製作操作系統時我從來不需要超過 3GB 的內存嘗試使用比可用記憶體更多的記憶體的程式會崩潰(它總是我自己的編碼錯誤的程式)。我怎樣才能以這種方式進行設定?
先感謝您。
答案1
如果您知道哪個程式導致了問題(正如您的問題所暗示的那樣),那麼您應該透過按Ctrl+ Alt+登入另一個終端F2,然後執行killall <processname>
.按Ctrl+ Alt+F7或Ctrl+ Alt+F8將返回 GUI。
如果必須停用交換,則需要編輯 /etc/fstab 檔案。
sudo gedit /etc/fstab
將有一行包含“交換”一詞。#
在行首放置一個。儲存文件,然後退出。重新啟動系統,您的交換區應該消失了。這可以透過系統監視器來驗證。
答案2
嘗試kill -STOP pid && swapoff /path/to/yourswapdev
那麼在此之後,您正在運行的程式可能是錯誤編碼的。
即使任務導致問題,您也可以嘗試保持 Linux 穩定,並且您仍然想使用它
嘗試
renice -n 20 -p pid
若要繼續該任務,請使用kill -CONT pid
注意:如果任務在啟動時啟動,您將需要在啟動腳本中將常規 exec 替換為一個好的命令
PDv2:避免在啟動時載入交換,在 /etc/fstab 中註解它的行