虚拟记忆体(SWAP)

确认记忆体使用状况

free -m
$ free -m
              total        used        free      shared  buff/cache   available
Mem:            990         164         197          38         628         584
Swap:             0           0           0

$ free -m
             total       used       free     shared    buffers     cached
Mem:           992        867        125         20         63        516
-/+ buffers/cache:        287        704
Swap:         1023          0       1023

设定 Swap File

设定 4G 的 SWAP 档案

sudo -s
cd /var
fallocate -l 4G swapfile.1
chmod 600 swapfile.1

设定此档案只能被 root 读写,以防安全性问题

启用 SWAP

mkswap /var/swapfile.1
swapon /var/swapfile.1

查询目前 SWAP 路径

$ swapon -s
$ swapon -s
Filename				Type		Size	Used	Priority
/var/swapfile.1                        	file    	4194300	0	-1

让 Swap file 重开机后也能自动启动

请确认您的 swap 档案路径为 /var/swapfile.1,如果有自定义其他 swap 档案名称,请将 swap 档案路径改为您的路径,否则会导致无法开机

echo "/var/swapfile.1    none    swap    sw    0    0" >> /etc/fstab

使用 htop 监控记忆体使用状况

sudo apt-get install htop

设定 swappiness 调整 swap 使用优先权

swappiness 数值介于 0~100,越接近 100 则系统越常使用 swap,越接近 0 则系统会越常使用 RAM,预设为 60,为了系统效能,可以尽量将此设定值调低

查询 swappiness

cat /proc/sys/vm/swappiness

设定 swappiness

sysctl vm.swappiness=10

设定重新开机时 swappiness 数值

echo "vm.swappiness = 10" >> /etc/sysctl.conf

变更 Swap 大小

关闭 Swap

swapoff -a

重新设定 Swap 档案大小

设定 8G 的 SWAP 档案

sudo -s
cd /var
fallocate -l 8G swapfile.2
chmod 600 swapfile.2

启用 SWAP

mkswap /var/swapfile.2
swapon /var/swapfile.2

参考资料