Перейти к содержанию

Производительность и тюнинг

Разделение ответственности, рычаги настройки и точки измерения пропускной способности.

Страница в активной разработке

Конкретные цифры пропускной способности и latency будут добавлены по мере накопления замеров в продуктивных внедрениях. Если у вас есть свои данные — присылайте, мы добавим со ссылкой.

Архитектурные рычаги

Пропускная способность адаптера упирается в три фактора:

  1. Регистрация в очереди — скорость записи в РегистрСведений.кфкИсходящиеСообщения при срабатывании подписок.
  2. Обработка очереди — скорость сериализации и отправки брокеру (исходящие) либо чтения и десериализации (входящие).
  3. Сеть и брокер — latency до Kafka, размер батча, настройки acks.

Параметры диспетчера

Основные рычаги настраиваются в диспетчерах задач продюсера / консьюмера (Фоновые и регламентные задания).

Параметр Эффект Когда увеличивать
Подпотоки обработки Параллельность сериализации/десериализации Рост очереди при CPU idle на сервере 1С
Подпотоки транспорта Параллельность отправки в брокер Медленная сеть до брокера, высокий latency Kafka
Потоковый режим Непрерывная работа без пауз между итерациями регламентного задания Постоянный поток сообщений

Дополнительные рычаги

  • Несколько диспетчеров на один топик — горизонтальное масштабирование по подмножествам данных.
  • Разделение топиков — разные темы под разные скорости обмена.
  • Пакетный режим регистрации — передача массива в ПоместитьВОчередьИсходящих() вместо поэлементной регистрации.

Точки измерения

Чтобы понимать, какой рычаг двигать, измеряйте:

  1. Лаг регистрации — интервал между изменением объекта и появлением записи в очереди.
  2. Лаг отправки — время от записи в очередь до статуса «Отправлено».
  3. Лаг доставки в потребителя — end-to-end: от записи в 1С-отправителе до записи в 1С-получателе.
  4. Throughput — сообщений/сек по топику (брать из кода мониторинга Kafka или из кфкИсходящиеСообщения за период).

Дашборды — через внешнее логирование в ELK/Loki. Базовые запросы — мониторинг.

Замеры (будут добавлены)

Типовые проблемы производительности

  • Очередь постоянно растёт.
  • Медленная сериализация в обработчике продюсера — профилировать и выносить тяжёлые выборки за пределы обработчика.
  • Частые блокировки на регистре исходящих — рассматривать разделение на несколько регистров/топиков.

Смотрите также