2016-03-21 9 views
17

Посмотрите на это изображение, показывающее потребление памяти gitlab ce. gitlab ce memory consumptionИспользование высокой памяти для Gitlab CE

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

+4

Как много, как я борюсь с использованием памяти Gitlab тоже Я не думаю, что этот вопрос принадлежит StackOverflow. Возможно, ServerFault? –

+3

У меня такая же проблема, мониторинг Gitlab показывает 2,3 ГБ на простое. – javydreamercsw

ответ

10

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

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

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

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

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

5

2 Опции я нашел просмотра gitlab.rb

  1. sidekiq['concurrency'] = 1 #25 is the default
  2. 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)" 

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

Memory usage gitlab c

еще слишком много, на мой взгляд.

+4

Настройка рабочих_процессов на 1 должна была отрицательно повлиять на мои транзакции через веб-интерфейс, чтобы сбой. – Wernight

+0

Не устанавливайте рабочие_процессы на что-либо меньшее, чем 2, с GitLab 10.1. https://gitlab.com/gitlab-org/gitlab-ce/issues/18771 – Xunnamius

13

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

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

С Postgres сервис работает 14,5 г в 16G, где используется enter image description here

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

enter image description here

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

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 перезапускает затронутые сервисы, а потребление памяти сейчас очень умеренное. enter image description here

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

7

С GitLab 9.0 Prometheus включен по умолчанию, который я заметил, использую много памяти над 1.5GB в моем случае, это может быть отключено с помощью prometheus_monitoring['enable'] = false

 Смежные вопросы

  • Нет связанных вопросов^_^