服务器推荐配置:Swap
在我的两核两G服务器无数次卡死重启之后,我终于发现了个好东西:Swap。
Swap是什么?
Swap 是 “内存不够时的备用仓库(硬盘当内存用)”
正常情况下,程序都在内存中运行。但如果内存不够了,系统就会把一部分“不常用的数据”挪到硬盘上,这个硬盘空间就叫 Swap(交换空间)
如果你加了 swap,内存满的时候,系统不会立刻杀程序,而是先把数据挪到 swap
虽然会变慢,但服务还能活着。
一、创建 Swap(推荐 2G)
创建 swap 文件
fallocate -l 2G /swapfile
设置权限(必须)
chmod 600 /swapfile
格式化为 swap
mkswap /swapfile
启用 swap
swapon /swapfile
验证是否成功
free -h
应该能看到:
Swap: 2.0G
二、设置开机自动挂载(很重要)
echo '/swapfile none swap sw 0 0' >> /etc/fstab
不加这个,重启就没了
三、优化使用策略(推荐)
默认系统会比较“爱用 swap”,我们要让它尽量少用
设置 swappiness(建议 10)
sysctl vm.swappiness=10
含义:
-
10 = 尽量用内存,实在不够才用 swap
-
默认一般是 60(太高了)
开机永久生效
echo 'vm.swappiness=10' >> /etc/sysctl.conf
四、验证最终效果
free -h
应该类似:
Mem: 3.5G
Swap: 2.0G
再看:
swapon --show
五、注意事项
swap不是让你“多跑程序”
而是防止崩溃,不是提升性能
省流版
你只需要执行这几行:
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab
sysctl vm.swappiness=10
echo 'vm.swappiness=10' >> /etc/sysctl.conf
评论