为什么要设置swap分区
当 VPS 的内存不足时,可能会导致死机而影响程序的正常运行。我们可以通过添加 SWAP 交换分区(虚拟内存)的方式来缓解内存不足的情况。合理的设置 SWAP 可以 在不升级硬件的情况下在 一定程度上提高主机的负载能力。
但毕竟是硬盘虚拟出来的,所以虚拟内存的速度取决于硬盘速度,同时因为硬盘速度和物理内存相比还是有很大差距的,所以只是用来缓解物理内存不足的情况。
VPS设置swap空间
swap大小
一般主机商配置好VPS后,大部分默认大小250M,大内存VPS的swap或许会更大,但都不是我们想要的,具体多大可以参考下面
物理内存 交换分区(SWAP) <= 4G 2~4G 4~16G 4~8G 16G~64G 16G以上 64G~256G 32G以上
为了方便记忆,可以设置超过4G内存的vps以上的swap为内存大小
Tips
SWAP 文件大小的设置,当然并不是设置的虚拟内存越大就越好,按需要设置,最大不要超过物理内存的 2 倍。
物理内存 ≤ 1G 时,设置 SWAP 为内存的 2 倍大小;8G > 物理内存 > 1G 时,设置 SWAP 为内存的 1.5 倍大小。
查看当前状态
free -h #查看swap分区的大小
删除所有SWAP分区
swapoff -a #删除所有SWAP分区
创建swap分区的文件
dd if=/dev/zero of=/root/swapfile bs=1M count=2048 #说明 bs 是每块的大小,这里用1M也可以用1024 count 是块的数量, bs*count,就是swap文件的大小了,这里就是1M*2048=2G
初始化硬盘为swap格式
mkswap /root/swapfile #格式化交换分区文件
启用swap分区文件
swapon /root/swapfile #启用swap分区文件
添加到启动项
#修改 /etc/fstab 这个文件,添加或者修改这一行 /root/swapfile swap swap defaults 0 0 #适用于redhat或centos系统 /root/swapfile none swap sw 0 0 #适用于Ubuntu系统 #或者直接执行以下命令写入/etc/fstab echo "/root/swapfile swap swap defaults 0 0" >>/etc/fstab #适用于redhat或centos系统 echo "/root/swapfile none swap sw 0 0" >>/etc/fstab #适用于Ubuntu系统