Вечерний пост в режиме "хозяйке на заметку"
Довелось мне тут "покрутить" почти что selfhosted Gitlab
Конечно же выделили ему дофига ядер/оперативки и все такое
И на него как все накинулись толпой =)
И все это начало безбожно тормозить, репы импортировались медленно, пепелайны запускались долго
Начали разбираться, с ресурсами все было ОК
Оказалось что нужно подтюнить параметры Sidekiq
Суть заключается в том что Sidekiq как раз и занимается бекграунд джобами, а именно импорты/экспорты, пепелайны и все такое.
По умолчанию он !!!ОДИН!!!, может использовать только !!!ОДНО!!! ядро, и работает в 20 потоков 😱
По итогу мы получаем ситуацию, когда в гитлабе много разных активностей которые стоят в очереди, да еще и на одном ядре
Решение может быть следующим:
sidekiq['queue_groups'] = ['*'] * 4
То есть мы увеличиваем количество Sidekiq до 4х
Конечно же у нас увеличится нагрузка на CPU и RAM, это тоже стоит держать в голове
Надеюсь эта заметка вам поможет =)
PS - если упороться, то распределением задач можно достаточно гибко управлять, например группировать их по типам или приоритету =)