Какую нагрузку держит Versola на один узел и сколько это стоит

Какую нагрузку держит Versola на один узел и сколько это стоит

Замер в Yandex Cloud Казахстан: один узел 8 vCPU с одним pod auth и одним pod edge выдерживает около 2 350 шагов в секунду, три узла — около 4 680. Пропускная способность, задержки, накладные расходы edge, CPU, нагрузка на БД и стоимость в месяц в долларах.

Нам нужна была одна цифра, которую можно показать техническому директору: сколько узлов требует заданная нагрузка и сколько это стоит в месяц. В статье эта цифра и способ, которым мы ее получили.

Коротко: на сборке 0.7 один узел 8 vCPU с одним pod auth и одним pod edge держит около 2 350 шагов в секунду в пределах заданных задержек. Три таких узла — около 4 680. Цена этой емкости в Yandex Cloud Казахстан в пересчете на доллары приведена ниже. «Шаг» — один запрос пользовательского сценария: бизнес-вызов через edge, обновление токена, обмен кода, шаг входа или выход.

Один узел, без сбоев
2 352шагов/с
auth + edge на одном узле 8 vCPU, ошибок нет
Три узла, без сбоев
4 679шагов/с
1 560 на узел
Планировать на
1 647шагов/с
на узел: 70% от чистой цифры, запас на всплески и потерю узла
p99 обновления токена
26мс
три узла; порог в тесте 250 мс
Накладные расходы edge, p99
11мс
три узла; медиана 1,7 мс
CPU на 1 000 шагов/с
2,1ядра
auth 1,01 + edge 1,14, три узла
Стоимость, один узел
$741*/ мес
узел, базы данных и мастер Kubernetes
Стоимость, три узла
$1 116*/ мес
узлы, базы данных и мастер Kubernetes
За 1 000 планируемых шагов/с
$341*/ мес
три узла; $450* на одном узле

* Прайс-лист Yandex Cloud Казахстан, с НДС, пересчет по курсу 1 $ = 450 ₸. Цены приблизительные и могут меняться.

Что мы измеряли

Стенд — кластер Kubernetes в зоне kz1-a. Узлы: 8 vCPU, 16 ГБ RAM, Intel Ice Lake. Базы данных — управляемый PostgreSQL: одна для auth и central, одна для edge. Генератор нагрузки на отдельных узлах гоняет миллион зарегистрированных пользователей через полный набор сценариев: вход по OTP, паролю или passkey, обновление токена, обмен кода, step-up, бизнес-вызовы через edge к upstream API и выход.

Две детали важны для чтения результатов.

Нагрузка растет ступенями. Каждая ступень: 1 минута прогрева, 4 минуты разгона и 6 минут плато, цифры взяты с плато. Ступень проходит, если доля сбоев ниже 2% и задержки в пределах порогов (p99 обновления токена меньше 250 мс, p99 бизнес-вызова меньше 300 мс). Сбойная ступень повторяется один раз. «Без сбоев» — последняя пройденная ступень.

Емкость по числу узлов

1 узел
2 352 шагов/с100% от линейного
2 узла
3 639 шагов/с77% от линейного
3 узла
4 679 шагов/с66% от линейного
Последняя ступень, уложившаяся в пороги, шагов в секунду.
УзловБез сбоев, шагов/сНа узелДоля от линейногоp99 обновления токенаp99 обмена кода
12 3522 352100%44 мс54 мс
23 6391 81977%27 мс32 мс
34 6791 56066%26 мс29 мс

Емкость растет не по прямой. Колонку «доля от линейного» стоит читать с поправкой на лестницу: нагрузка росла крупными шагами, поэтому последняя чистая ступень — нижняя граница. На ступень выше установки на два и три узла не рухнули. Они продолжали обслуживать 4 260 шагов/с (два узла, 90% от линейного) и 5 630 шагов/с (три узла, 80%) с долей сбоев менее 0,1%, но с p99 от 2,7 до 3,4 секунды, то есть вне порога.

Из чего состояла нагрузка

В секунду на одном узле, на чистой ступени:

Тип шагаВ секундуДоля
Бизнес-вызовы через edge1 05255%
Обновления токена45424%
Вход: authorize, телефон, challenge, PAR24313%
Обмены кода авторизации462%
Ввод OTP402%
Выходы332%
Проверки passkey241%
Проверки пароля (Argon2)121%

На двух и трех узлах доли сохраняются. Отношение обновлений токена к обменам кода равно 10, это верхняя граница целевого профиля (5–10 обновлений на один обмен кода).

Работа между двумя сервисами делится так, на одном узле:

СервисЗапросов в секундуЧто обрабатывает
edge1 554проксирование ресурсов 989, эндпоинты мобильных приложений 508, сессии и выход 18, прочее 38
auth980обновление токена 421, вход (authorize, PAR, challenge) 322, userinfo 157, обмен кода 62, прочее 19

Один бизнес-вызов — один запрос к edge и, у части вызовов, дополнительный запрос userinfo или refresh к auth, поэтому на одни и те же шаги два сервиса видят разное число запросов. На трех узлах: 3 133 запроса в секунду на edge и 1 967 на auth.

Задержки и накладные расходы edge

Накладные расходы edge — то, что edge добавляет к проксируемому вызову сам, не считая времени ожидания upstream. Их измеряет гистограмма proxy-overhead самого edge.

1 узел2 узла3 узла
Накладные расходы edge, p502,0 мс1,8 мс1,7 мс
Накладные расходы edge, p9923,5 мс18,2 мс11,0 мс
p99 обновления токена44 мс27 мс26 мс
p99 обмена кода54 мс32 мс29 мс
p99 проверки пароля (Argon2)155 мс111 мс108 мс
p99 проверки passkey61 мс47 мс44 мс

На одном узле p99 выше, потому что этот прогон был ближе всего к своему пределу.

Ресурсы

На трех узлах, на чистой ступени:

Почему мы считаем в узлах, а не в pod

У pod auth и edge есть CPU request, но нет CPU limit, поэтому под нагрузкой pod забирает столько ядер, сколько свободно на узле. В прошлых прогонах один pod auth доходил до 7,4 из 7,9 доступных ядер. Потолок — это CPU узла, который делят его auth, edge и системные pod. Добавление pod на уже занятый узел ничего не дает, а добавление узла добавляет целую пару.

Сколько это стоит

Цены — прайс-лист Yandex Cloud Казахстан, с НДС, в месяц, пересчет по курсу 1 $ = 450 ₸. Они приблизительные и могут меняться.

Статья$ в месяц*
Мастер Kubernetes (зональный, 2 vCPU / 8 ГБ) и его публичный IP$100
PostgreSQL для auth и central (c3-c8-m16, 150 ГБ SSD)$306
PostgreSQL для edge (c3-c4-m8, 50 ГБ SSD)$147
Фиксированная часть$553
Один рабочий узел (8 vCPU, 16 ГБ RAM, 64 ГБ SSD)$188
УзловПланируемая нагрузка, шагов/с$ в месяц*$ за 1 000 планируемых шагов/с*
11 647$741$450
22 547$928$364
33 275$1 116$341

Стоимость за 1 000 шагов/с — это месячный итог, деленный на планируемую нагрузку, а она равна 70% от чистой цифры. С ростом числа узлов стоимость падает, потому что фиксированную часть делят больше узлов. Рост стоит $114* в месяц за каждые следующие 1 000 планируемых шагов/с: это еще один узел, $188*, деленный на планируемую нагрузку одного узла. Считаются только узлы. Базы данных в этом тесте не росли и не нагружались выше примерно 4 000 шагов в секунду.

Цены взяты из публичного каталога Yandex Cloud Казахстан (список SKU биллинга, выгружен 16.10.2026) и применены к реальной конфигурации стенда: vCPU, RAM и диск каждого узла и хоста базы данных, 730 часов в месяц. Не учтены: сетевой балансировщик перед ingress (около $11* в месяц), исходящий трафик, дополнительное хранилище резервных копий и техподдержка.

← Все статьи