Linux VPS 添加 SWAP 交换分区(虚拟内存)

SWAP 交换分区类似于 Windows 下的虚拟内存,是把空闲的硬盘空间虚拟作为内存来使用,防止物理内存不够而导致系统死机。合理的设置 SWAP 可以 在不升级硬件的情况下在 一定程度上提高主机的负载能力。

当 VPS 的内存不足时,可能会导致死机而影响程序的正常运行。我们可以通过添加 SWAP 交换分区(虚拟内存)的方式来缓解内存不足的情况。

SWAP 交换分区类似于 Windows 下的虚拟内存,是把空闲的硬盘空间虚拟作为内存来使用,防止物理内存不够而导致系统死机。合理的设置 SWAP 可以 在不升级硬件的情况下在 一定程度上提高主机的负载能力

虚拟内存主要在物理内存吃紧的情况下起作用。当物理内存吃紧不够用时,系统把一部分当前未活动的进程移动到 SWAP 分区中留存,腾出空闲空间给当前程序使用;等需要运行时,再把这部分程序从 SWAP 分区中恢复到物理内存上运行。

但毕竟是硬盘虚拟出来的,所以虚拟内存的速度取决于硬盘速度,同时因为硬盘速度和物理内存相比还是有很大差距的,所以只是用来缓解物理内存不足的情况。

SWAP 添加方法

1.查看当前 SWAP 情况

free -m

图0:Linux VPS 添加 SWAP 交换分区(虚拟内存)

image.png

2.添加 SWAP 交换文件

创建 SWAP 文件,设置大小,这里我设置为 1G。(bs * count = SWAP 大小)

dd if=/dev/zero of=/var/swap bs=1M count=1024

设置文件权限

chmod 600 /var/swap

创建 SWAP

mkswap /var/swap

启用

swapon /var/swap

查看 SWAP 状态

swapon -s 或者 free -m

图1:Linux VPS 添加 SWAP 交换分区(虚拟内存)

image.png

3.添加开机启动

/etc/fstab 中添加一行 /var/swap swap swap default 0 0

echo '/var/swap swap swap default 0 0' >> /etc/fstab

删除 SWAP

如果需要删除 SWAP 的话可以按照下面操作进行。

首先要停用

swapoff /var/swap

然后再删除

rm -rf /var/swap

最后去掉开机启动

sed -i '/\/var\/swap swap swap default 0 0/d' /etc/fstab

Tips

SWAP 文件大小的设置,当然并不是设置的虚拟内存越大就越好,按需要设置,最大不要超过物理内存的 2 倍。

物理内存 ≤ 1G 时,设置 SWAP 为内存的 2 倍大小;8G > 物理内存 > 1G 时,设置 SWAP 为内存的 1.5 倍大小。

结语

添加 SWAP 交换分区(虚拟内存)比较适合于物理内存吃紧或者刚刚够用的情况,避免了因为内存只差一点不够用而升级整个 VPS 的情况,既节省了费用也满足了需要。对于物理内存本身就很充裕的情况下,作用并不是很大。

当然因为虚拟内存和物理内存之间性能上的差距,如果内存确实缺的比较多,还是直接升级硬件的好。

作者:己立

阅读余下内容

发表评论

电子邮件地址不会被公开。 必填项已用*标注


京ICP备12002735号