涉及的命令
free:查看內存狀態命令,可以顯示memory、swap、buffer/cache等的大小及使用狀況;
dd:讀取,轉換並輸出數據命令;
mkswap:設置交換區
swapon:啟用交換區,相當於mount
swapoff:關閉交換區,相當於umount
查看swap空間大小
通過查看內存狀態命令free可以獲得swap空間大小,正常狀況下可使用以下三個命令之一:
free
free -m
free -h
比如下面是free -h在我主機上的輸出:
$ free -h
total used free shared buff/cache available
Mem: 13G 3.5G 2.7G 367M 7.4G 9.4G
Swap: 11G 126M 11G
關閉所有交換分區
命令如下:
swapoff -a
通過swap分區文件增加swap空間
1. 創建swap分區的文件
dd if=/dev/zero of=swapfile bs=1M count=1024
其中bs是每塊的大小,count是塊的數量;bs*count,就是swap文件的大小:這里1M*1024=1G。可以根據需要自行調整。
此外,swapfile是swap文件的路徑,可以根據需求修改。
2. 格式化交換分區文件
mkswap swapfile
這里的路徑和之前的路徑要對應起來。
3. 啟用swap分區文件
swapon swapfile
4. 添加開機啟動
修改/etc/fstab這個文件,添加或者修改這一行:
swapfile swap swap defaults 0 0
注意,路徑還是要對應,而且必須是全路徑。最后兩個是零,不是大寫字母O。
此項不是必須的。如果不修改開機啟動配置,重啟之后的swap空間會重置,之前配置丟失。
通過新建分區來擴展原有swap空間
這個是Linode的默認做法,這里也介紹一下。此方法與swap文件類似,只是使用了一個獨立分區,而不是文件。
使用fdisk創建交換分區(假設是 /dev/sdb2)
使用mkswap設置交換分區:
mkswap /dev/sdb2
啟用交換分區
swapon /dev/sdb2
修改/etc/fstab添加到開啟啟動項:
/dev/sdb2 swap swap defaults 0 0