Высокое использование памяти для Gitlab CE

Посмотрите на это изображение, показывающее потребление памяти gitlab ce. gitlab ce memory usage

Мне действительно не нужны все эти рабочие, сторонники или единороги или все эти демоны. Это находится в IDLE. Я имею в виду, что я установил это, чтобы управлять 1 проектом, с 4 людьми, мне не нужен все эти демоны. Есть ли способ уменьшить это?

Ответы

Ответ 1

С вашего изображения это похоже на Sidekiq, и все его работники используют общую сумму в 257 Мб памяти, что нормально. Помните, что все работники Sidekiq используют один и тот же пул памяти, поэтому они используют 257mb всего, а не 257mb каждый. Как вы видели из своего собственного ответа, уменьшение количества рабочих мест Sidekiq не приведет к резкому уменьшению использования памяти, но приведет к тому, что фоновые задания будут занимать больше времени, поскольку они должны ждать, пока процесс Sidekiq будет доступен. Я бы оставил это значение по умолчанию, но если вы действительно хотите его уменьшить, я бы не уменьшил его ниже 4, так как у вас есть 4 ядра.

Процессы Unicorn также совместно используют пул памяти, но каждый рабочий имеет 1 пул, который делится между двумя его процессами. В вашем исходном изображении похоже, что у вас есть 5 работников, которые рекомендуется для 4-х ядровой системы, и каждый использует около ~ 250 мб памяти. Вы не должны замечать каких-либо различий в производительности, если вы уменьшили число рабочих до 3.

Кроме того, вы можете прочитать этот документ о том, как настроить Unicorn. Вы определенно не хотите, чтобы число рабочих было меньше 2, поскольку оно вызывает проблемы при редактировании файлов из пользовательского интерфейса GitLab, так как обсуждается здесь, а также отключает клонирование по HTTPS в соответствии с этой цитатой из связанного документа doc:

Только один рабочий Unicorn git через ssh будет работать, потому что для доступа git по HTTP требуется два работающих рабочих (один рабочий получает запрос пользователя и один рабочий для проверки авторизации).

Наконец, последние версии GitLab, похоже, выделяют больше памяти для кэша базы данных postgresql. Я бы рекомендовал настроить это свойство postgresql['shared_buffers'] в /etc/gitlab/gitlab.rb на 1/4 вашей общей свободной памяти. Подробнее см. Ответ René Link ниже.

Ответ 2

У меня также были проблемы с высоким потреблением памяти gitlab.

В моем случае я узнал, что служба postgresl использовала большую часть памяти.

С службой postgres 14.5G из 16G, где используется введите описание изображения здесь

Я остановил одно обслуживание gitlab за другим и выяснил, что когда я останавливать postgres, было освобождено много памяти.

введите описание изображения здесь

Вы можете попробовать

gitlab-ctl stop postgresql

и снова запустите службу с помощью

gitlab-ctl start postgresql

Наконец, я встретил следующую конфигурацию в /etc/gitlab/gitlab.rb

##! **recommend value is 1/4 of total RAM, up to 14GB.**
# postgresql['shared_buffers'] = "256MB"

Я просто установил общие буферы на 256 МБ, удалив комментарий #, потому что для меня достаточно 256 МБ.

postgresql['shared_buffers'] = "256MB"

и выполнил gitlab-ctl reconfigure. gitlab-ctl перезапускает затронутые сервисы, а потребление памяти сейчас очень умеренное. введите описание изображения здесь

Надеюсь, это поможет кому-то другому.

Ответ 3

Поскольку GitLab 9.0, prometheus включен по умолчанию, который, как я заметил, использовал большую память объемом более 1,5 ГБ в моем случае, это можно отключить с помощью prometheus_monitoring['enable'] = false

Ответ 4

2 Параметры Я нашел просмотр gitlab.rb

  • sidekiq['concurrency'] = 1 #25 is the default
  • unicorn['worker_processes'] = 1 #2 is the default

И это нужно понимать в соответствии с их предупреждением:

## Only change these settings if you understand well what they mean
## see https://about.gitlab.com/2015/06/05/how-gitlab-uses-unicorn-and-  unicorn-worker-killer/
## and https://github.com/kzk/unicorn-worker-killer
# unicorn['worker_memory_limit_min'] = "300*(1024**2)"
# unicorn['worker_memory_limit_max'] = "350*(1024**2)"

Это после изменений конфигурации

Использование памяти gitlab c

По-прежнему слишком много, по моему мнению.