Производительность и тюнинг¶
Разделение ответственности, рычаги настройки и точки измерения пропускной способности.
Эталонных публичных замеров у проекта нет: пропускная способность сильно зависит от профиля сообщений (размер, частота), оборудования и настроек Kafka. Поэтому страница даёт методику: какие рычаги существуют и как измерить эффект каждого в вашем контуре. Если вы готовы поделиться замерами из продуктивного внедрения — откройте issue.
Архитектурные рычаги¶
Пропускная способность адаптера упирается в три фактора:
- Регистрация в очереди — скорость записи в
РегистрСведений.кфкИсходящиеСообщенияпри срабатывании подписок. - Обработка очереди — скорость сериализации и отправки брокеру (исходящие) либо чтения и десериализации (входящие).
- Сеть и брокер — latency до Kafka, размер батча, настройки acks.
Параметры диспетчера¶
Основные рычаги настраиваются в диспетчерах задач продюсера / консьюмера (Фоновые и регламентные задания).
| Параметр | Эффект | Когда увеличивать |
|---|---|---|
| Подпотоки обработки | Параллельность сериализации/десериализации | Рост очереди при CPU idle на сервере 1С |
| Подпотоки транспорта | Параллельность отправки в брокер | Медленная сеть до брокера, высокий latency Kafka |
| Потоковый режим | Непрерывная работа без пауз между итерациями регламентного задания | Постоянный поток сообщений |
Дополнительные рычаги¶
- Разделение топиков — разные темы под разные скорости обмена.
- Пакетный режим регистрации — передача массива в
ПоместитьВОчередьИсходящих()вместо поэлементной регистрации.
Точки измерения¶
Чтобы понимать, какой рычаг двигать, измеряйте:
- Лаг регистрации — интервал между изменением объекта и появлением записи в очереди.
- Лаг отправки — время от записи в очередь до статуса «Отправлено».
- Лаг доставки в потребителя — end-to-end: от записи в 1С-отправителе до записи в 1С-получателе.
- Throughput — сообщений/сек по топику (брать из кода мониторинга Kafka или из
кфкИсходящиеСообщенияза период).
Дашборды — через внешнее логирование в ELK/Loki. Базовые запросы — мониторинг.
Как провести замер у себя¶
Чтобы решения о тюнинге опирались на данные, а не на ощущения, зафиксируйте профиль и измерьте базовую линию до изменения параметров:
- Профиль нагрузки — типичный размер тела сообщения, частота регистрации (сообщений/мин), число партиций топика и replication factor.
- Базовая линия — лаги и throughput из раздела Точки измерения при текущих настройках, на интервале не короче часа рабочей нагрузки.
- Изменение одного параметра — меняйте по одному рычагу за итерацию (подпотоки обработки → подпотоки транспорта → потоковый режим) и сравнивайте с базовой линией.
- Контроль стоимости — вместе с лагами следите за CPU/RAM сервера 1С и числом фоновых заданий: рост параллелизма не бесплатен.
Типовые проблемы производительности¶
- Очередь постоянно растёт.
- Медленная сериализация в обработчике продюсера — профилировать и выносить тяжёлые выборки за пределы обработчика.
- Частые блокировки на регистре исходящих — рассматривать разделение на несколько регистров/топиков.
Смотрите также¶
- Фоновые и регламентные задания — где крутить параметры.
- Мониторинг очередей — как видеть текущую нагрузку.
- Типовые проблемы.