linux交換分區不是必須的;linux系統可以在沒有交換分區的情況下完美運行,在某些情況下,可以像嵌入式解決方案一樣,linux可以不交換運行,交換分區擁有盡可能多的物理內存是避免交換的最佳解決方案。
本教程操作環境:linux7.3系統、Dell G3電腦。
linux交換分區是必須的嗎
Linux 系統可以在沒有交換分區的情況下完美運行。
當您安裝Linux時,安裝過程可能會添加交換分區到硬盤以及Linux本身的分區。但是這個交換分區是什么用的,真的有必要嗎?
什么是交換?
當多任務操作系統用完物理內存時,無法啟動新進程或為現有進程分配更多內存。為了解決這個問題,本地存儲(通常是硬盤驅動器)上的一個特殊的空間塊被放在一邊作為一個臨時保存區操作系統這釋放了新的工作的記憶。當非活動進程再次變為活動狀態時,它將從本地存儲交換回內存。此過程稱為交換。
Is交換空間真的有必要嗎?
Is交換空間在技術上是必需的?
沒有。Linux可以在沒有它的情況下工作,在某些情況下,像嵌入式解決方案一樣,Linux可以不交換運行。如果操作系統進入它沒有的情況如果有足夠的物理RAM,機器將運行沒有任何問題。
交換空間實際上是必需的?
雖然交換減慢了計算機(因為讀取和寫入硬盤比訪問RAM慢得多),并且擁有盡可能多的物理內存是避免交換的最佳解決方案,但是有合法的情況需要進行交換。例如,在系統引導過程中,可能會有一些進程運行(因此消耗系統內存),但可以在很長一段時間內有效地進行休眠。或分配的內存,寫入然后再不使用。在這些情況下,交換算法將開始將該內存遷移到硬盤,從而釋放寶貴的系統內存。這實際上確保了RAM的最大數量隨時可用,從而提高性能。
擴展知識
On機器
為了完整起見,值得一提的是,Linux還有一個稱為內存失敗者(OOM)的子系統,而不是在內存耗盡時停止內核,將開始殺死進程以釋放資源。它的動作是可配置的。
我應該分配多少交換空間?
沒有絕對的規則,由于硬盤空間便宜(美元/吉比特),最好分配太多太多的空間。作為經驗法則,您應該有兩到三倍的交換空間作為物理內存。
添加交換而不擴展交換分區
有兩種方法可以在不更改現有交換分區的情況下向系統添加交換空間。一種方法是在另一個驅動器上使用交換分區,另一種是使用交換文件。
要使用另一個硬盤驅動器,請創建一個類型的分區要立即使用交換空間要永久性地將交換空間添加到系統中,您需要編輯/ etc / fstab文件并添加類似于this:
/ dev / sdb2的行無交換sw 0 0
如果您的系統正在使用唯一的標識符命名磁盤,請使用blkid命令來獲取設備的ID列表。在/ etc / fstab中安裝交換空間的行將看起來像是這樣的.:
UUID?=?036da155-1ea1-4392-b8d4-700f65aa1ead?none?swap?sw?0?0
要使用文件進行交換,請在該文件上創建一個大的空白文件(使用dd)要用于交換的文件系統。例如,要創建一個1GB文件,type = 10mh1112
dd?if?=?/?dev?/?zero?of?=?/?store?/?swapfile?bs?=?1024?count?=?1048576
Where / store / swapfile是所需文件系統上交換文件的路徑。
As與附加交換分區,該文件現在需要準備與mkswap,然后與swapon一起使用。它還需要添加到/ etc / fstab文件中。該過程與上述完全相同,但是您需要使用/ store / swapfile而不是/ dev / sdb2作為交換空間參數。
Swappiness
可以調整Linux內核以定義如何積極地嘗試將進程交換出內存。這種趨勢由稱為swappiness的內核變量控制。0的意思是內核將盡可能避免交換,而100表示內核將如何使用交換空間是積極的。許多Linux發行版的默認設置是60.可以使用此命令動態地更改數字.:
sudo?sysctl?vm。swappiness?=?10
要永久設置值,您需要更改(或添加,如果沒有)/ etc / sysctl中的swappiness變量。conf文件。
推薦學習:Linux視頻教程