前言
最近购买了好几个小鸡准备拿来做CDN加速使用,但是内存都是512M的。担心在使用Nginx可能会崩溃,所以要适当的调一下SWAP分区,让应用更稳定的运行。其实就是把硬盘上的一部分空间来做swap(windows也有这一项技术:虚拟内存),将系统内的非活跃内存换页到swap,来提高系统的可用内存。
创建swap分区
1#新建一个文件专门用于swap分区
2dd if=/dev/zero of=/swapfile bs=1M count=2024
3#也可以用fallocate这种方法来创建
4#fallocate -l 2G /swapfile
5
6#设置swap交换区
7mkswap /swapfile
8
9#更改swap权限
10chmod 600 /swapfile
启用分区
1#启用swap交换分区
2swapon /swapfile
3
4#查看内存状态
5swapon --show
6free -m
7#设置开机自启
8vim /etc/fstab
9
10#在/etc/fstab添加下面这段内容
11/swapfile swap swap defaults 0 0
12或者直接输入
13echo "/data/swap swap swap defaults 0 0" >> /etc/fstab
查看内核参数 调vm.swappiness参数
1cat /proc/sys/vm/swappiness
2sysctl -a | grep swappiness
3#临时修改
4sysctl -w vm.swappiness=50
5
6#永久修改
7vi + /etc/sysctl.conf
8# 添加
9vm.swappiness=50
10## 让配置生效
11sysctl -p
这里需要简单说明下,在Linux系统中,可以通过查看/proc/sys/vm/swappiness内容的值来确定系统对SWAP分区的使用原则。当swappiness内容的值为0时,表示最大限度地使用物理内存,物理内存使用完毕后,才会使用SWAP分区。当swappiness内容的值为100时,表示积极地使用SWAP分区,并且把内存中的数据及时地置换到SWAP分区。注:若想永久修改,则编辑/etc/sysctl.conf文件 默认值为 0,表示需要在物理内存使用完毕后才会使用 SWAP 分区。 我们这里设置的50,就表示当物理内存少于50%时便使用交换分区。