减少gitlab占用内存的方式,,实际操作,,修改前2.3G,,修改后1.7G,,,2-3个人用的话还可以优化一下到1G,
free -h查看内存占用
小机器用puma替换unicorn:
http://icyleaf.com/2014/01/moving-unicorn-to-puma-on-gitlab/
vim /etc/gitlab/gitlab.rb
A.
gitlab配置,,适当改小:
unicorn[‘enable’] = false #如果启用就打开,13.0版本用puma替换unicorn可以使内存占用变小
puma[‘enable’] = true #如果启用就打开,不启用关闭,和unicorn互斥
unicorn[‘worker_processes’] = 2
unicorn[‘worker_memory_limit_min’] = “50 * 1 << 2”
unicorn[‘worker_memory_limit_max’] = “128 * 1 << 2”
postgresql[‘shared_buffers’] = “50MB”
postgresql[‘max_worker_processes’] = 2
prometheus_monitoring[‘enable’] = false
sidekiq[‘concurrency’] = 3
nginx[‘worker_processes’] = 2
puma[‘ha’] = false
puma[‘worker_processes’] = 2
puma[‘worker_timeout’] = 60
puma[‘min_threads’] = 1
puma[‘max_threads’] = 2
设置每个Puma内存限制
puma[‘per_worker_max_memory_mb’] = 256
控制ruby进程数量
gitaly[‘enable’] = true
gitaly[‘ruby_num_workers’] = 2
B.swap, 小机器:
创建swap内存文件: dd if=/dev/zero of=/data/swap bs=1024 count=1024000
bs*count就是之后使用的交换内存的大小,单位是b。
free -h
dd if=/dev/zero of=/data/swap bs=4096 count=1024000
mkswap /data/swap #格式化
sysctl -w vm.swappiness=100
vim /etc/sysctl.conf:
vm.swappiness = 100
swapon /data/swap #激活虚拟内存文件
echo “/data/swap swap swap defaults 0 0” >> /etc/fstab #开机的时候自动加载虚拟内存文件
cat /proc/swaps
注:阿里云默认在启动项里关闭了 SWAP 分区,
在/etc/rc.d/rc.local 文件里有一行 swapoff -a ,表示禁用 swap。把这行删掉就好了。
最后:
gitlab-ctl reconfigure
gitlab-ctl restart
================
方法一:
1、减少进程数,修改worker_processes:
unicorn[‘worker_processes’] = 2
#默认是被注释掉的,官方建议该值是CPU核心数加一,可以提高服务器的响应速度,如果内存只有4G,或者服务器上有其它业务,就不要改了,以免内存不足。另外,这个参数最小值是2,设为1,服务器可能会卡死
2、减少数据库缓存
postgresql[‘shared_buffers’] = “256MB”
默认为256MB,可适当改小
3、减少数据库并发数
postgresql[‘max_worker_processes’] = 8
默认为8,可适当改小
4、减少sidekiq并发数
sidekiq[‘concurrency’] = 25
默认是25,可适当改小
二、启用Swap分区
1、创建 swap 分区(这里需要等待几秒)
dd if=/dev/zero of=/data/swap bs=512 count=8388616
注意:创建swap大小为bs*count=4294971392(4G),/data/swap目录若无则找/mnt/swap
2、通过mkswap命令将上面新建出的文件做成swap分区
mkswap /data/swap
3、查看内核参数vm.swappiness中的数值是否为0,如果为0则根据实际需要调整成60
设置机器使用swap交换分区的“积极性”,swappiness文件的值从0到100,
越大使用swap交换分区的频率越大。因为本人服务器内存太小,只能大大的用,性能再见吧……
echo 100 > /proc/sys/vm/swappiness
查看参数:cat /proc/sys/vm/swappiness
设置参数:sysctl -w vm.swappiness=100
此时使用cat /proc/sys/vm/swappiness查看数值应该是0,
需要sysctl -w vm.swappiness=60把它改成60,这里60的含义是:100%-60%=40%,
即物理内存剩下40%的时候时启用虚拟内存。
若想永久修改,则编辑/etc/sysctl.conf文件,改文件中有vm.swappiness变量配置。
4、启用 swap 分区
swapon /data/swap
如果需要一直保持这个 swap ,可以把它写入 /etc/fstab 文件
echo “/data/swap swap swap defaults 0 0” >> /etc/fstab
5、再次使用cat /proc/swaps 查看swap分区是否启动
6、最后重启配置生效:
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
7.关闭swap分区
swapoff /data/swap
swapoff -a >/dev/null
可以使用free -m 命令查看内存占用情况
最后终于可以看到GitLab的登录页面了,~~~~~~
转载请注明:SuperIT » (原创)gitlab占用内存过大的处理方式,,实际操作