// article · linux
为 CentOS 增加 Swap 分区
使用free -h查看CentOS系统内存使用情况:

可以看到,Swap = 0,服务器没有开启交换分区。
这样会有内存隐患,一旦业务瞬间突增、内存耗尽,系统没有 swap 兜底,会直接触发 OOM Killer 杀掉进程,网站或数据库会突然宕机,所以需要为服务器增加Swap分区。
服务器物理内存是8G,推荐 2G Swap 作为安全缓冲;不建议开超过 4G。步骤如下:
1、创建 2G 大小 swap 文件
dd if=/dev/zero of=/swapfil
e bs=1G count=2bs=1G:每次读写 1Gcount=2:总共 2G,如果你想 4G 就改成count=4
2、设置权限,只有 root 可读可写,防止普通用户篡改 swap 文件(必须!安全要求)
chmod 600 /swapfile3、格式化为 swap
mkswap /swapfile4、启用 swap
swapon /swapfile5、设置开机永久生效
编辑 /etc/fstab
vim /etc/fstab在文件最后一行添加:
/swapfile none swap sw 0 0保存退出 :wq
6、验证是否成功
free -h
看到 Swap 一行不再是 0,成功
7、调整 swappiness 内核参数
swappiness 值代表内核有多倾向于使用 swap。
默认值一般是 30:内存剩余很多也会往 swap 写,造成卡顿
推荐设置 10:只有内存压力大的时候才用 swap
设置永久生效:
编辑etc/sysctl.conf文件
vim /etc/sysctl.conf在末尾行添加一行
vm.swappiness=10加载配置生效
sysctl -p校验结果
cat /proc/sys/vm/swappiness此时输出10就是正确配置完成。