部分低配云服务器内存较小,运行网站、数据库时容易出现内存耗尽,进程被系统 OOM 机制强制终止,网站异常。Swap 就是虚拟内存,把磁盘空间临时充当内存使用,当物理内存占满后,系统会将部分数据写入 swap,避免程序崩溃。
free -h
输出中 Swap 一行,如果显示 0,代表服务器未配置虚拟内存。
# 创建2G大小的swap文件
dd if=/dev/zero of=/swapfile bs=1M count=2048
# 设置swap文件权限
chmod 600 /swapfile
# 格式化为swap
mkswap /swapfile
# 启用swap
swapon /swapfile
编辑 /etc/fstab 文件
vi /etc/fstab
在文件末尾增加一行:
/swapfile swap swap defaults 0 0
保存退出,重启服务器后 swap 自动生效。
swapoff /swapfile
rm -f /swapfile
同时删除 /etc/fstab 里面对应的配置行。
swappiness 控制系统使用 swap 的倾向,数值 0~100,建站推荐设置 10
# 临时修改
sysctl vm.swappiness=10
# 永久修改,编辑sysctl.conf
vi /etc/sysctl.conf
# 添加 vm.swappiness=10,保存后生效
sysctl -p
对于 1G、2G 等小内存云服务器,配置 swap 可以防止内存溢出导致网站、数据库意外退出。swap 仅作为应急方案,如果业务长期内存占用高,建议升级云服务器内存规格。