在 Linux 中,Swap 分區相當于 Windows 的虛擬內存,如果 VPS 內存較小可以添加 Swap,把硬盤當內存用。
注意:OpenVZ 無法自行添加 Swap 分區。
一. 檢查 Swap 空間
swapon -s
如果返回的信息為空,則表示 Swap 文件不存在,可以添加。
二. 創建并允許 Swap 文件
dd if=/dev/zero of=/home/swapfile bs=1024 count=1024k
參數解讀:
if=文件名:輸入文件名。即指定源文件。
of=文件名:輸出文件名。即指定目的文件。
bs=bytes:同時設置讀入/輸出的塊大小為bytes個字節。
count=blocks:僅拷貝blocks個塊,塊大小等于bs指定的字節數。
三. 格式化并激活 Swap 文件
- 格式化 Swap。
mkswap /home/swapfile
- 激活 Swap。
swapon /home/swapfile
以上步驟做完,再次運行命令:
swapon -s
返回信息如下:
Filename Type Size Used Priority
/home/swapfile file 1048572 0 -1
證明 Swap 分區初步配置完成。
四. 配置 fstab 開機掛載
配置 fstab 后可實現開機自動掛載 Swap 分區的功能。
用 vim 打開 /etc/fstab 文件,
sudo vim /etc/fstab
在其最后添加如下一行:
/home/swapfile swap swap defaults 0 0
然后輸入:w
回車保存并退出。
最后,賦予 Swap 文件適當的權限:
chown root:root /home/swapfile
chmod 600 /home/swapfile
五. 配置 swappiness (可選)
此外,我們還可以通過修改 Swap 的 swappiness 參數來控制 Linux 使用 Swap 的程度。
- swappiness=0 時,系統積極使用物理內存,物理內存不足后才使用 Swap 空間。
- swappiness=100 時,系統積極的使用 Swap 分區,并且把內存上的數據及時的搬運到 Swap 空間里面。
在 CentOS/Ubuntu 中,swappiness 的值可以通過以下命令可以看到:
cat /proc/sys/vm/swappiness
返回值為60。
我們可以調整 swappiness 的值到一個合適的參數,從而達到最優化使用 Swap 的目的。這里我們可以將其設為10。
- 臨時修改:
使用 sysctl 命令
sysctl vm.swappiness=10
重啟系統后會恢復默認值。 - 永久設置:
在 vim 中修改sysctl.conf:
sudo vim /etc/sysctl.conf
在文檔的最后加上如下一行:
vm.swappiness=10
輸入:x,保存退出 vim 。
六. 總結
把以下命令敲一遍即可添加好 Swap 分區。
swapon -s
dd if=/dev/zero of=/home/swapfile bs=1024 count=1024k
mkswap /home/swapfile
swapon /home/swapfile
配置開機掛載:
sudo vim /etc/fstab
/*最后一行添加*/
/home/swapfile swap swap defaults 0 0
設置權限
chown root:root /home/swapfile
chmod 600 /home/swapfile
配置 swappiness (可選)
sudo vim /etc/sysctl.conf
/*最后一行添加*/
vm.swappiness=10
/*保存退出即可。*/
七. 參考鏈接
https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-centos-6
http://www.cmsky.com/linux-add-swap/