微信搜索superit|邀请体验:大数据, 数据管理、OLAP分析与可视化平台 | 赞助作者:赞助作者

(原创)gitlab占用内存过大的处理方式,,实际操作

原创 aide_941 28℃

减少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占用内存过大的处理方式,,实际操作

喜欢 (3)or分享 (0)