Предварительная версия. Функциональность может измениться, но основные возможности сохранятся. Совместимость с будущими версиями может потребовать ручных действий по миграции.
Масштабирование основано на параметре CodeInstance
scaling.targetUsercount
— в зависимости от его значения модуль изменяет
HPA, PDB, запросы/лимиты по CPU и памяти.
Внимание! Не рекомендуется использовать любые экземпляры “burstable” в облачной инфраструктуре из-за непостоянной производительности.
Архитектурная справка
10 Users
Простая инсталляция без HА-режима. Подходит для ознакомительного режима работы. В такой инсталляции мы не гарантируем отказоустойчивость или способность выдержать какую-то нагрузку
Таблица потребляемых ресурсов
Расчет приводится на базе ожидаемого количества пользователей
В таблице ниже приведены ресурсы, требуемые для развертывания 1 копии каждого компонента. При установке в режиме высокой доступности планируйте как минимум удвоенное количество ресурсов
Users/Component | 100 | 300 | 500 | 1000 |
---|---|---|---|---|
Webservice default | 2CPU / 4Gb 2 воркера, 8 тредов |
3CPU / 6Gb 3 воркера, 8 тредов |
3CPU / 6Gb 3 воркера, 8 тредов |
4CPU / 8Gb 4 воркера, 8 тредов |
Webservice internal | 2CPU / 4Gb 2 воркера, 8 тредов |
2CPU / 4Gb 2 воркера, 8 тредов |
2CPU / 4Gb 2 воркера, 8 тредов |
2CPU / 4Gb 2 воркера, 8 тредов |
Sidekiq | 0.25CPU / 1.5Gb 1.5 CPU / 3Gb |
0.25CPU / 1.5Gb 1.5CPU / 3Gb |
0.25CPU / 1.5Gb 1.5CPU / 3Gb |
0.25CPU / 1.5Gb 1.5CPU / 3Gb |
Shell | 0.01CPU / 24Mb 0.05 CPU / 128Mb |
0.01CPU / 24Mb 0.05CPU / 128Mb |
0.01CPU / 24Mb 0.05CPU / 128Mb |
0.01CPU / 24Mb 0.05CPU / 128Mb |
Toolbox | 0.05CPU / 350Mb 1 CPU / 2Gb |
0.05CPU / 350Mb 1CPU / 2Gb |
0.05CPU / 350Mb 1CPU / 2Gb |
0.05CPU / 350Mb 1CPU / 2Gb |
Praefect | 0.1CPU / 128Mb 0.3 CPU / 600Mb |
0.1CPU / 128Mb 0.3CPU / 600Mb |
0.1CPU / 128Mb 0.3CPU / 600Mb |
0.1CPU / 128Mb 0.3CPU / 600Mb |
Gitaly | 1.5CPU / 2Gb 1.5CPU / 2Gb |
1.5CPU / 2Gb 1.5CPU / 2Gb |
1.5CPU / 2Gb 1.5CPU / 2Gb |
2CPU / 4Gb 2CPU / 4Gb |
MRA | 0.5CPU / 250Mb 1CPU / 500Mb |
0.5CPU / 250Mb 1CPU / 500Mb |
0.5CPU / 250Mb 1CPU / 500Mb |
0.5CPU / 250Mb 1CPU / 500Mb |
Code-operator | 0.02CPU / 128Mb 1CPU / 256Mb |
0.02CPU / 128Mb 1CPU / 256Mb |
0.02CPU / 128Mb 1CPU / 256Mb |
0.02CPU / 128Mb 1CPU / 256Mb |
Registry* | 1 CPU/ 1Gb 1.5CPU / 2Gb |
1CPU / 1Gb 1.5CPU / 2Gb |
1 CPU/ 1Gb 1.5CPU / 2Gb |
1CPU / 1Gb 1.5CPU / 2Gb |
Pages* | 0.9CPU / 1Gb 1.5CPU / 2Gb |
0.9CPU / 1Gb 1.5CPU / 2Gb |
0.9CPU / 1Gb 1.5CPU / 2Gb |
0.9CPU / 1Gb 1.5CPU / 2Gb |
Mailroom* | 0.05CPU / 150Mb 0.25CPU / 0.5Gb |
0.05CPU / 150Mb 0.25 CPU / 0.5Gb |
0.05CPU / 150Mb 0.25CPU / 0.5Gb |
0.05CPU / 150Mb 0.25CPU / 0.5Gb |
HAProxy* | 0.25CPU / 128Mb 0.5CPU / 256Mb |
0.25CPU / 128Mb 0.5CPU / 256Mb |
0.25CPU / 128Mb 0.5CPU / 256Mb |
0.25CPU / 128Mb 0.5CPU / 256Mb |
Всего(Мин компоненты) | 7CPU / 13Gb 11CPU / 17Gb |
8CPU / 15.5Gb 12CPU / 19.5Gb |
8CPU / 15.5Gb 12CPU / 19.5Gb |
9.5CPU / 17.5Gb 13CPU / 21.5Gb |
Всего(Все компоненты) | 9CPU / 15Gb 14CPU / 22Gb |
10CPU / 17.5Gb 15CPU / 24Gb |
10CPU / 17.5Gb 15CPU / 24Gb |
11.5CPU / 19.5Gb 16CPU / 26Gb |
Опциональные компоненты отмечены в таблице символом
*
Первая строка каждой ячейки отражаетrequests
по ресурсам, вторая -limits
Настройка масштабирования ресурсов хранилища Git
Если вы видите непустую таблицу ‘OOM events’ в Grafana или срабатывающий алерт GitalyCgroupMemoryOOM
в Prometheus, вероятно, вам нужно скорректировать ресурсы памяти и CPU для Gitaly. Увеличьте значения spec.gitData.resources
в вашей конфигурации (например, установите память на 16Gi и CPU на 4). Примените изменения и наблюдайте за Gitaly.
Конечно! Вот улучшенная и более чёткая версия вашего русского текста с сохранением разметки Markdown:
При масштабировании Git-хранилища важно учитывать следующий приоритет параметров:
- Явно заданные ресурсы в
spec.gitData.resources
- Значение
spec.scaling.targetUserCount
(используется для автоматического расчёта ресурсов по таблице)
Пример 1:
`spec.gitData.resources.cpu`: 1
`spec.gitData.resources.memory`: 1Gi
`spec.scaling.targetUserCount`: 3000
Согласно таблице рекомендуемых ресурсов (описанной выше), ожидаемый результат при targetUserCount = 3000
:
memory
: 4Gicpu
: 2
Однако из-за приоритета явно заданных значений фактический результат будет:
memory
: 1Gi (взято из таблицы, так как вspec.gitData.resources.memory
указано значение меньше требуемого)cpu
: 1 (взято напрямую изspec.gitData.resources.cpu
, несмотря на рекомендацию таблицы)
💡 Примечание: если явно указан параметр в
spec.gitData.resources
, он всегда имеет приоритет над автоматическим расчётом.
Пример 2:
`spec.gitData.resources.cpu`: 5
`spec.gitData.resources.memory`: ***намеренно не указан***
`spec.scaling.targetUserCount`: 3000
Согласно таблице, ожидаемый результат при targetUserCount = 3000
:
memory
: 4Gicpu
: 2
Но поскольку:
spec.gitData.resources.cpu
задан явно → используется значение 5,spec.gitData.resources.memory
не указан → используется значение из таблицы (4Gi),
фактический результат будет:
memory
: 4Gi (из таблицы)cpu
: 5 (изspec.gitData.resources.cpu
)
💡 Важно: если какой-либо ресурс (CPU или память) не указан в
spec.gitData.resources
, для него применяется значение из таблицы масштабирования.