Перейти к основному содержимому

Сайзинг установок

Актуально для: SimpleTwo 0.9.x · Проверено: 20.09.2026

Три размера, и они не выдуманы под документацию: это те же S / M / L, по которым снимается профиль нагрузки продукта.

SML
Учётных записей1508004 000
Активны в час пик (70%)1055602 800
Одновременных соединений в пик1508004 000
Групповых бесед19100500
Личных переписок4202 24011 200
Сообщений за год1,6 млн8,4 млн42 млн
Одновременных участников звонков1570350
Правило, которое стоит запомнить

В час пик живых соединений примерно столько же, сколько людей в организации: 0,7 активных × 1,4 устройства ≈ 1,0 на человека. Это число можно проверить в проде одной командой — счётчик соединений службы переписки должен совпасть с численностью.

1. Хосты на старт (размер S)

РольvCPU / RAM / дискСетьЧем ограничена
координатор2 / 4 / 20 ГБ100 Мбит/с, публичный IPv4ничем
messaging2 / 4 / 100 ГБ SSD100 Мбит/с, публичный IPv4диском, пока вложения на нём
sfu, каждый4 / 8 / 20 ГБ1 Гбит/с, публичный IPv4каналом
turn2 / 2 / 20 ГБ1 Гбит/с, публичный IPv4каналом
calendar2 / 4 / 20 ГБ100 Мбит/сопросом внешних календарей
gateway, каждый1 / 1 / 20 ГБ1 Гбит/сканалом
postgres2 / 4 / 40 ГБ SSDприватная сетьдиском
redis1 / 1 / 10 ГБприватная сетьничем
s32 / 4 / диск по медиаприватная сетьдиском
support2 / 4 / 20 ГБприватная сеть (DMZ)памятью

Для M и L растёт прежде всего медиа; служба переписки и база масштабируются заметно позже и в первую очередь диском.

2. Медиапул: арифметика, а не ощущение

Узел sfu упирается в канал, а не в процессор. Бюджет узла — 700 Мбит/с исходящего (70% гигабитного интерфейса), участник конференции тянет ≈ 2 Мбит/с.

SML
Исходящий поток в обычном режиме30 Мбит/с140 Мбит/с700 Мбит/с
Узлов для обычного режима111 — ровно в бюджет, запаса нет
Доля через turn9 Мбит/с42 Мбит/с210 Мбит/с

Но пул считают не по обычному режиму, а по общему собранию: зритель одного докладчика с демонстрацией экрана тянет ≈ 2,5 Мбит/с.

Общее собраниеУчастниковИсходящий потокУзлов по бюджетуСтавить (N+1)
S150375 Мбит/с12
M8002,0 Гбит/с34
L4 00010 Гбит/с15см. оговорку ниже
Пятнадцать узлов на одну встречу — это не план мощностей

Для организации в 4 000 человек общее собрание всех сразу упирается не в деньги на железо, а в архитектуру: такой сценарий требует другого способа раздачи, а не большего пула. Нагрузочный прогон для большого размера выполняется на 500 участниках и экстраполируется, и в отчёте это написано прямо. Планируя L, планируйте либо меньшие собрания, либо трансляцию — не 15 узлов SFU.

N+1 — не перестраховка. Потеря узла роняет комнаты, которые на нём жили: живые сессии между узлами не переезжают. Организация, для которой звонки — рабочий инструмент, ставит на один узел больше расчёта.

3. Диск под вложения

Считается по медиа, а не по людям: ≈ 0,8 ГБ на человека в год при 8 файлах в рабочий день и среднем размере 400 КБ. Для S это ≈ 120 ГБ в год, для M ≈ 640 ГБ, для L ≈ 3,2 ТБ — и именно этот столбец решает, нужна ли роль s3 или внешнее хранилище.

Записи встреч считаются отдельно и сверх этого: одна запись конференции — это файл размером с запись экрана, а не с переписку.

4. XL: организация до 100 000 человек

Сразу и прямо: этот размер не измерен. Профиль нагрузки продукта заканчивается на 4 000, а медиа для этого размера прогоняется на 500 участниках и экстраполируется. Всё ниже — арифметика от тех же удельных чисел, и она полезна ровно тем, что показывает, что упрётся первым.

L (4 000)XL (100 000)
Одновременных соединений в пик4 000≈ 100 000
Сообщений за год42 млн≈ 1 млрд
Вложений за год3,2 ТБ≈ 80 ТБ
Одновременных участников звонков350≈ 8 700
Исходящий поток SFU в обычном режиме700 Мбит/с≈ 17 Гбит/с
Узлов sfu для обычного режима1≈ 25 + 1

Что упирается первым

  1. Общее собрание. Оно не сходится уже на 4 000, а на 100 000 требует 250 Гбит/с исходящего потока — это не пул медиасерверов, это раздача. Организация такого размера проводит общие собрания трансляцией, а не конференцией, и трансляции в продукте пока нет. Планируя XL, планируйте её отдельно — это работа, а не настройка.
  2. Сокеты службы переписки. Служба масштабируется репликами: они делят Postgres, объектное хранилище и шину, а шина разносит события между ними и держит общее присутствие. Но предел открытых файлов в юните — 65 535, то есть одна реплика не примет 100 000 соединений даже теоретически. Считайте несколько реплик за балансировщиком и проверяйте, во что упирается шина: она получает публикацию на каждое событие и раздаёт её всем репликам.
  3. Postgres. Миллиард сообщений в год — это партиционирование, отдельный тюнингованный кластер и своя стратегия резервного копирования. Роль postgres из поставки рассчитана на установку, а не на такой объём; для XL это внешний кластер и его администратор.
  4. Объектное хранилище. 80 ТБ в год — это политика жизненного цикла и сроки хранения, а не «диск побольше». Именно на этом размере сроки хранения перестают быть теоретическим разделом.
  5. Пуши. Фан-аут на 100 000 устройств — вопрос пропускной способности к APNs и FCM и ограничений с их стороны; у нас он не измерялся.
  6. Каталог и плоскость управления. Координатор не стоит в пути сообщения и звонка, и это главное, что спасает: его нагрузка — вход, синхронизация каталога на 100 000 учётных записей и телеметрия. Но база у него одна и на одной машине; для XL это первое, что нужно проверить отдельно.

Что делать с этим списком

Он не говорит «нельзя». Он говорит, что XL — это проект, а не типоразмер: до обещаний заказчику такого масштаба нужны прогон на его профиле, ответ про трансляции и решение по кластеру Postgres. Если в тендере стоит 100 000 человек, показывайте эту страницу, а не таблицу для L, умноженную на 25.

5. Что растёт, а что нет

Растёт с числом людейПочти не растёт
медиапул, канал, диск под вложениякоординатор: он не в пути звонка и не в пути сообщения
база: сообщения за годredis: держит маршрутизацию комнат, а не данные
число VPN-узлов — по локациям, а не по людямcalendar: нагрузка от опроса внешних клиентов, а не от численности

Дальше