我在網上讀過很多次,應該減少或禁用交換性。是這樣嗎,它有什麼作用呢?我有 2GB RAM,我應該禁用交換功能嗎?
答案1
根據維基百科:-
Swappiness 是一個 Linux 核心參數,它控制交換運行時記憶體的相對權重,而不是從系統頁面快取中刪除頁面。 Swappiness 可設定為 0 到 100 之間的值(含 0 和 100)。較低的值會導致核心避免交換,較高的值會導致核心嘗試使用交換空間。預設值為 60,對於大多數桌面系統,將其設為 100 可能會影響整體效能,而設定較低(甚至 0)可能會減少回應延遲。
根據烏班圖維基:-
交換空間是硬碟上的區域,是電腦虛擬記憶體的一部分,虛擬記憶體是可存取的實體記憶體 (RAM) 和交換空間的組合。交換空間暫時儲存不活動的記憶體頁。當系統確定活動進程需要實體記憶體且沒有足夠的未使用實體記憶體時,將使用交換空間。如果系統碰巧需要更多記憶體資源或空間,則實體記憶體中的非活動頁面將移至交換空間,從而釋放該實體記憶體以供其他用途。請注意,交換的存取時間較慢,因此不要將其視為物理記憶體的完全替代。交換空間可以是專用交換分割區(建議)、交換文件或交換分割區和交換文件的組合。
從我的圖表中可以看出,烏班圖使用的交換空間比應有的多得多。您可以輕鬆地關閉/減少交換性,這應該在具有超過2GB的記憶體不用於高記憶體使用工作,例如編輯高清奧迪/視訊/影像,
您的系統滯後,因為 Swappiness 設定為預設值並且它寫入硬碟1000次比寫入慢記憶體。
若要檢查 Swappiness 的目前值,
cat /proc/sys/vm/swappiness
或者
sysctl vm.swappiness
若要暫時停用或設定 Swappiness,請在終端機中 ( Ctrl+ Alt+ T),
sudo swapoff -a
或者
sysctl -w vm.swappiness=10
若要永久執行此操作,請/etc/sysctl.conf
使用以下命令將以下行新增至您的檔案sudo nano /etc/sysctl.conf
:-
# CHANGE SWAP
vm.swappiness=x
這裡,x
可以是任意數字0到100在哪裡:-
0 = disable swap
1 = minimum swap
10 = recommended for >2GB
60 = Linux Default for Swap
100 = Maximum Swap, for >1GB Ram
您不應將 swappiness 值設為0除非你非常確定你永遠不會用完你的記憶體否則記憶體不足(OOM) Killer 將啟動並開始殺死進程,耗盡 RAM。
這是更多資訊。