设置阿里云ECS的swap

安装 gitlab[1] [2] [3] 时碰到的问题。中间出现几次内存分配的问题,其中添加 ssh key 导致 500 错误,我 1G 内存跑了apache nginx mysql,以为内存不够用,确实不够用。找了好多,提到减少 unicorn.rb 里的 worker_processes 节省内存,后又有文章提到没有swap。我才想到阿里云有可能没有swap,搜一下果然没有。

我这里总结一下参考的文章所进行的操作(需要 root 权限):

1. dd if=/dev/zero of=/mnt/swapfile bs=1MB count=1024    

这个 bs 的单位可以用 man dd 进行查看,有详细的说明,我这里创建 1G 

2. mkswap /mnt/swapfile

这里把刚才创建的文件做成swap文件

3. swapon /mnt/swapfile

开启swap

4. swapon -s

查看状态

5. free -m

查看内存状态

=========以下操作能确保 swap 更安全,且重启后有效===========

6. vim /etc/rc.local

查看 vim /etc/rc.local 如果有 swapoff -a 修改为 swapon -a

7. vim /etc/fstab 

/mnt/swapfile swap swap defaults 0 0

设置自动挂载

8. chown root:root /mnt/swapfile 

    chmod 0600 /mnt/swapfile

权限设置

9. cat /proc/sys/vm/swappiness

    sysctl vm.swappiness=10

查看 swappiness 值,如果为 0 ,则将其改为 10

10. vim /etc/sysctl.conf

永久设置 swappiness,如果该文件里没有,则追加 vm.swappiness = 10

重启,那些永久设置项就生效了。

摘抄一句:swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面


参照:

http://jonathanmh.com/running-gitlab-on-digital-ocean/

http://hostingformula.net/gitlab-500-error-when-add-ssh-key/

http://stackoverflow.com/questions/26777690/gitlab-500-error-when-adding-removing-ssh-key

https://help.aliyun.com/knowledge_detail/5988582.html

http://www.cnblogs.com/guanjie20/archive/2013/04/24/3042584.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值