前言
当 VPS 的内存不足时,可能会导致死机而影响程序的正常运行。我们可以通过添加 SWAP 交换分区(虚拟内存)的方式来缓解内存不足的情况。
简介
SWAP 交换分区类似于 Windows 下的虚拟内存,是把空闲的硬盘空间虚拟作为内存来使用,防止物理内存不够而导致系统死机。合理的设置 SWAP 可以在不升级硬件的情况下在一定程度上提高主机的负载能力。
虚拟内存主要在物理内存吃紧的情况下起作用。当物理内存吃紧不够用时,系统把一部分当前未活动的进程移动到 SWAP 分区中留存,腾出空闲空间给当前程序使用;等需要运行时,再把这部分程序从 SWAP 分区中恢复到物理内存上运行。
但毕竟是硬盘虚拟出来的,所以虚拟内存的速度取决于硬盘速度,同时因为硬盘速度和物理内存相比还是有很大差距的,所以只是用来缓解物理内存不足的情况。
SWAP 添加方法
1.查看当前 SWAP 情况
1 | free -m |
2.添加 SWAP 交换文件
创建 SWAP 文件,设置大小,这里我设置为 1G。(bs * count = SWAP 大小)
1 | dd if=/dev/zero of=/var/swap bs=1M count=1024 |
设置文件权限
1 | chmod 600 /var/swap |
创建 SWAP
1 | mkswap /var/swap |
启用
1 | swapon /var/swap |
查看 SWAP 状态
3.添加开机启动
在 /etc/fstab
中添加一行 /var/swap swap swap default 0 0
1 | echo '/var/swap swap swap default 0 0' >> /etc/fstab |
删除 SWAP
如果需要删除 SWAP 的话可以按照下面操作进行。
首先要停用
1 | swapoff /var/swap |
然后再删除
1 | rm -rf /var/swap |
最后去掉开机启动
1 | 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 的情况,既节省了费用也满足了需要。对于物理内存本身就很充裕的情况下,作用并不是很大。
当然因为虚拟内存和物理内存之间性能上的差距,如果内存确实缺的比较多,还是直接升级硬件的好。
Go 2 Think 原创文章,转载请注明来源及原文链接