VPS内存太小怎么办?Linux下添加Swap分区

在 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 文件

  1. 格式化 Swap。
    mkswap /home/swapfile
  2. 激活 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/

你可能感兴趣的:(VPS内存太小怎么办?Linux下添加Swap分区)