代码库最近换了,使用了 GitLab。这两天观察了下服务器的使用情况,发现 GitLab 很吃内存。直接占用了 30 多个G的内存。

一、发现问题

使用 top 命令查看内存时,发现前几十个都是同一个应用程序。再通过 ll /proc/pid 命令查找具体程序位置,发现都是 GItLab 。

这其中包含了 gitlab、postgresql、nginx 等各种 gitlab 所需的服务。具体如下图:


(资料图)

二、查找原因

经过查证。GitLab 在默认情况下,其配置是很吃配置的,如工作的核数,是当前机器 CPU 核数 +1。再加上数据库缓存、Sidekiq 等都需要设置。

具体可以参考:

解决 GitLab 内存消耗大

Puma 介绍

Sidekiq 介绍

三、解决

问题已经找到,那就直接修改问题即可。

主要就是修改 gitlab.rd 配置文件即可。(下面的配置可以满足几十人的工作需求)

1、修改 Puma(在 13.0版本后是这个,以前是unicorn)

主要是设置工作进程个数和最大、最小线程个数。

2、修改 Sidekiq

设置 Sidekiq 并发个数,建议是设置成相同的数值。

3、修改 postgresql

设置缓存大小、工作进程个数。


关键词: