阿里云Centos7开启swap虚拟内存

出差归来,几个开发反馈说gitlab网页卡的不行,上传代码也非常吃力。我登入服务器一看,原来是内存已经耗尽了。

修改配置文件

gitlab本身就是一个特别吃内存的软件,服务器还是2核4G的配置。于是我就登陆到gitlab容器里,修改一下/etc/gitlab/gitlab.rb,把unicorn['worker_processes']手动改成了3,也就是比CPU大一个,这样可以少开一点进程。但是注意,这个参数最小值是2,如果设置成1,那么gitlab就会崩坏。

保存文件之后,gitlab-ctl reconfigure,看一下内存的情况,嗯,比刚才好一点点。如图:
paradin

开启虚拟内存

上面那个方法毕竟效果有限,时间长了还是会把内存一点点蚕食光,于是就要使用Swap分区,但是阿里云虚拟服务器默认是不带swap分区的,如何手动创建swap分区才是本文的要点。

这里我用了一个非生产环境的机器做实验。

创建swap分区主要的中心思想就是“创建一个文件,然后将这块文件格式化为swap格式”,首先先看一下当前的磁盘容量:
paradin

当前已用磁盘容量是16G,使用cat /proc/swaps看一下当前虚拟内存的情况:
paradin

这个情况说明没开启swap,于是就手动建立一个文件夹,比如叫/swaps,在/swaps这个路径下执行dd if=/dev/zero of=swaps bs=512 count=8388616,在这里创建swap大小为bs*count=4294971392(4G),这个过程需要一点时间,稍等片刻:
paradin

通过mkswap swaps命令将上面新建出的swaps文件做成swap分区:
paradin

此时使用cat /proc/sys/vm/swappiness查看数值应该是0,需要sysctl -w vm.swappiness=60把它改成60,这里60的含义是:100%-60%=40%,即物理内存剩下40%的时候时启用虚拟内存。若想永久修改,则编辑/etc/sysctl.conf文件,改文件中有vm.swappiness变量配置。

swapon /swaps/swaps
paradin

最后就是添加开机自动挂载,即在/etc/fstab文件添加如下一句:

1
/swaps/swaps  swap      swap    defaults   0       0

再用cat /proc/swaps命令检查一下swap分区是否启动:
paradin

最后,重启一下服务器,看一下开机是否正常挂载上这个虚拟分区了:
paradin

可见原来使用了16G容量,现在用了20G,这中间差的4G就是拿来做了swap,于是内存就这样多了4个G…

-------------This article is over!Thanks for reading!-------------
感谢您请我喝咖啡!(o´ω`o)
0%