一、為什么很多Linux軟件的安裝教程都要求關閉swap
swap是內存不夠用的時候,臨時用一點兒磁盤空間代替內存。
出現的問題,就是程序在用內存的時候,可能會用到swap,相應的IO能力下降。
關掉就不會出現這個問題,但是關掉以后,內存超出設定值,程序就可能會直接崩掉。崩掉的結果,好一點兒的會重啟,差一點兒的會崩潰,看具體是什么程序。
如果只是web這樣的程序,大多都是k8s或者是docker這樣的集群、容器,崩幾個節點無所謂。
如果是mysql這樣的數據庫,一般也不用容器,因為根本就不考慮mysql掛掉自動重啟的使用狀況。
mysql一般都設置有內存使用上限,設置使用內存的75%或者80%,不能讓它滿了,用到swap反而會下降mysql性能。
也還要看機器配置,Linux的內存機制是盡量多的使用內存。swap在一般運行時占用情況不多。但是有些內存很小的arm板子沒有swap很多軟件在編譯時會因為內存不足導致編譯報錯而中斷。如果內存非常大的話可以關閉swap,配置一般還是推薦保留一點或者代替運存。
延伸閱讀:
二、swap的主要功能
(1)、當物理內存不足的時候,將某些在內存中所占用的程序暫時移動到swap當中,讓物理內存可以被需要的程序來使用;
(2)、Linux會將內存中不常訪問的數據保存到swap中,當系統需要再次調用的時候,就把它從swap加載到內存;
(3)、如果你的主機支持電源管理模式,也就是說,你的Linux主機系統可以進入”休眠”模式的話,那么,運行當中的程序狀態則會被記錄到swap中去,以作為”喚醒”主機狀態的依據;
(4)、在某些程序運行時,本來就會利用swap特性來存放一些數據,比如在裝Oracle11g的時候會檢查swap size。