Судя по вашему изображению, Sidekiq и все его рабочие используют в общей сложности 257 МБ памяти, что нормально. Помните, что все рабочие Sidekiq используют один и тот же пул памяти, поэтому они используют всего 257 МБ, а не по 257 МБ каждый. Как вы видели из своего собственного ответа, уменьшение количества рабочих Sidekiq не приведет к резкому уменьшению использования памяти, но приведет к тому, что фоновые задания будут занимать больше времени, поскольку им придется ждать, пока процесс Sidekiq станет доступным. Я бы оставил это значение по умолчанию, но если вы действительно хотите его уменьшить, я бы не стал уменьшать его ниже 4, поскольку у вас 4 ядра.
Процессы Unicorn также совместно используют пул памяти, но у каждого рабочего есть 1 пул, который совместно используется двумя его процессами. В вашем исходном образе у вас есть 5 рабочих процессов, что рекомендуется для 4-ядерной системы, и каждый использует около 250 МБ памяти. Вы не заметите разницы в производительности, если уменьшите количество рабочих до 3.
Кроме того, вы можете прочитать этот документ о том, как настроить Unicorn. Вы определенно не хотите, чтобы количество рабочих процессов было меньше 2, потому что это вызывает проблемы при редактировании файлов из пользовательского интерфейса GitLab, как обсуждается здесь, а также отключает клонирование через HTTPS в соответствии с этой цитатой из документа, на который я дал ссылку:
С одним воркером Unicorn будет работать только доступ git через ssh, потому что доступ git через HTTP требует двух работающих воркеров (один воркер для получения запроса пользователя и один воркер для проверки авторизации).
Наконец, последние версии GitLab, кажется, выделяют больше памяти для кеша базы данных postgresql. Я бы рекомендовал настроить это свойство postgresql['shared_buffers']
в /etc/gitlab/gitlab.rb
так, чтобы оно составляло 1/4 от общего объема свободной оперативной памяти. См. ответ Рене Линка ниже для получения дополнительной информации об этом.
person
BrokenBinary
schedule
21.03.2016