比较尴尬了,明月才发现自己使用的阿里云ECS竟然没有开启SWAP分区,当然很多人会说阿里云ECS的硬盘I/O很差,但是有些场景还是很需要SWAP分区的,所以就查阅了一下资料,创建了一个SWAP分区,以备不时之需。
明月的ECS云主机上挂了N个网站,所以内存一直都很紧张,目前启用SWAP分区应该是合适的,我这里总结一下参考的文章所进行的操作(需要 root 权限):
- 这个
bs
的单位可以用man dd
进行查看,有详细的说明,我这里创建1G
dd if=/dev/zero of=/mnt/swapfile bs=1MB count=1024
- 这里把刚才创建的文件做成
swap
文件
mkswap /mnt/swapfile
- 开启
swap
swapon /mnt/swapfile
- 查看状态
swapon -s
- 查看内存状态
free -m
=========以下操作能确保 swap 更安全,且重启后有效===========
6.查看 vim /etc/rc.local
如果有 swapoff -a
修改为 swapon -a
vim /etc/rc.local
- 设置自动挂载
vim /etc/fstab
/mnt/swapfile swap swap defaults 0 0
8.权限设置
chown root:root /mnt/swapfile
chmod 0600 /mnt/swapfile
- 查看 swappiness 值。
cat /proc/sys/vm/swappiness
如果为 0 ,则将其改为 10
·sysctl vm.swappiness=10
- 永久设置
swappiness
,如果该文件里没有,则追加vm.swappiness = 10
vim /etc/sysctl.conf
重启,那些永久设置项就生效了。
PS:swappiness=0
的时候表示最大限度使用物理内存,然后才是 swap
空间,swappiness=100
的时候表示积极的使用swap
分区,并且把内存上的数据及时的搬运到swap
空间里面。
上述都是明月亲测有效的,希望可以帮到大家,网上众多类似的教程,明月不建议大家随便使用,因为SWAP如果没有设定好将会严重影响服务器的负载,这也是为什么明月都要亲测有效才会用的主要原因,这年月“转载”都不用心的人实在是太多了!
5 条评论
不错,过来支持一下
我是腾讯云1核1G配置,查看了下swap占用是0,这样目前还用开通swap嘛
这个看你的swappiness值是多少了!建议是开启SWAP为宜的,如果内存够用,那么swappiness值设定在30以内就可以了!毕竟这样的话,内存中不需要频繁使用的可以存在硬盘上,给需要用到物理内存的进程留下更多的内存可用有利于WEB服务器的运行性能的!所以SWAP的使用并不是一定要物理内存紧张了才用的。
要是面板的就好了,写代码真的难。
呵呵,说实话面板能做的事儿还是太有限了!所以我一直都是控制台终端,呵呵!