GitLab占用内存过大的问题
GitLab占用内存过大的问题
个人用的阿里云ECS内存太小,GitLab要求的内存配置比较高,所以改小一点。
顺带记一下GitLab命令行管理命令:
gitlab-ctl help
gitlab-ctl show-config
gitlab-ctl status
gitlab-ctl reconfigure
gitlab-ctl restart
gitlab-ctl stop
先改改Unicorn吧:https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/unicorn.md
编辑/etc/gitlab/gitlab.rb
:
# worker_processes 最小值不能低于2
unicorn['worker_processes'] = 2
unicorn['worker_timeout'] = 60
sidekiq['concurrency'] = 10
改完执行
sudo gitlab-ctl reconfigure
GitLab 开放权限
新建的仓库,指定为私有,只有仓库的拥有者才能进行clone, push, merge等操作。
找到仓库-members,添加成员和成员组,这些人就能clone代码了。最好修改他们的权限为开发者。
找到仓库-Settings-Repository-Portected Branches,修改仓库的push,merge的权限。(拥有者,开发者,拥有者+开发者,任何人)。
启用Swap
swap交换空间是一种虚拟内存机制,默认情况下,阿里云主机是灭有开启swap功能的。原因是通过降低磁盘IO占用率提高磁盘寿命,并且让用户购买内存。
通过top
指令或者cat /proc/swaps
可以看到系统没有配置swap分区,会导致所有数据都在内存占用。
启用swap有两种方式,一种使用整个磁盘分区作为swap,一种使用文件充当swap:
此处使用文件作为swap
# 创建 /mnt/swapfile 大小为 bs*count = 4294971392(4G)
dd if=/dev/zero of=/mnt/swapfile bs=1M count=4096
# 建议修改权限
chmod 600 /mnt/swapfile
#将上面创建的文件做成swap分区
mkswap /mnt/swapfile
检查内核参数,查看vm.swappiness数值是否为0 (这个值表示系统什么时候会启用swap分区,swappiness=60 表示内存使用率超过100-60=40%时,会启用交换分区)
# 查看参数值
cat /proc/sys/vm/swappiness
# 临时调整
sysctl -w vm.swappiness=60
# 永久调整
vi /etc/sysctl.conf
# 修改 vm.swappiness = 60
# 改完文件重新加载参数
sysctl -p
启用swap分区
swapon /mnt/swapfile
# 添加到起服加载中,永久生效
echo "/mnt/swapfile swap swap defaults 0 0" >> /etc/fstab
# 查看swap分区是否启动
cat /proc/swapfile
# 查看swap是否启用
swapon -s
如果想要关闭分区:
swapoff /mnt/swapfile
# 其他的指令,比如修改优先级
swapon -p 10 /mnt/swapfile
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 using1174@foxmail.com
文章标题: GitLab占用内存过大的问题
文章字数: 600
本文作者: Jun
发布时间: 2018-04-14, 23:35:00
最后更新: 2022-05-08, 20:55:12
原始链接: http://yoursite.com/2018/04/14/GitLab占用内存过大的问题/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。