優化 Ubuntu 14.04 中的交換使用

交換空間是硬盤上的區域,它是機器虛擬內存的一部分。 它臨時保存不活動的內存頁。 當您的系統決定它需要用於活動進程的物理內存並且沒有足夠的未使用物理內存可用時,將使用交換空間。 如果系統碰巧需要更多內存資源或空間,則物理內存中的非活動頁面將移動到交換空間,從而釋放該物理內存以供其他用途。 請注意,swap 的訪問時間較慢,因此不要將其視為物理內存的完全替代。

交換空間可以是專用交換分區(推薦)、交換文件或交換分區和交換文件的組合。

你什麼時候需要交換:

  • 使整個系統需要額外內存的大型程序。
  • hibernate 會寫出 RAM 的內容來交換
  • 擴展緩存

優化交換使用:

swappiness 參數控制交換使用的趨勢,因此您可以更改其值以提高 Ubuntu 桌面的整體性能。

  • swappiness 的值可以在 0 到 100 之間
  • swappiness=0 告訴內核盡可能長時間地避免將進程交換出物理內存
  • swappiness=100 告訴內核主動從物理內存中交換進程並將它們移動到交換緩存

Ctrl+Alt+T 在鍵盤上打開終端。 打開時:

要檢查 swappiness 值,請運行:

cat /proc/sys/vm/swappiness

如果您有大內存,您可以通過以下方式減少該值:

sudo sysctl vm.swappiness=10

要永久更改,請通過以下方式編輯配置文件:

sudo gedit /etc/sysctl.conf

將以下行添加到末尾並保存文件。

vm.swappiness=10

最後重新啟動以應用更改。

空交換:

即使您有大量 RAM 並且即使您的 swappiness 值很低,您的計算機也可能會發生交換。 這可能會損害桌面系統的多任務處理性能。

您可以使用以下腳本將交換手動返回 RAM:

1. 放置腳本,例如 /usr/local/sbin:

gksudo gedit /usr/local/sbin/swap2ram.sh

將腳本複制並粘貼到文件中並保存:

#!/bin/sh

mem=$(free  | awk '/Mem:/ {print $4}')
swap=$(free | awk '/Swap:/ {print $3}')

if [ $mem -lt $swap ]; then
    echo "ERROR: not enough RAM to write swap back, nothing done" >&2
    exit 1
fi

swapoff -a && 
swapon -a

使腳本可執行:

sudo chmod +x /usr/local/sbin/swap2ram.sh

最後執行腳本:

sudo /usr/local/sbin/swap2ram.sh

更多的