При работе с HTTP-сервисами в среде 1С:Предприятие системные администраторы и разработчики часто сталкиваются с проблемой высокого времени отклика — в таких ситуациях поможет комплексный анализ производительности 1С, серверов и СУБД. Даже если сама функция в модуле 1С выполняется за 1 мс, общее время ответа может составлять 300 мс и более. Основная часть этого времени тратится на накладные расходы: установку соединения веб-сервера с базой данных, инициализацию сеанса и проверку прав. В данной статье мы подробно разберем, как минимизировать эти задержки и настроить связку Apache и 1С на максимальную производительность, не забывая про альтернативные подходы к обработке HTTP-запросов в инфраструктуре 1С.
Рассмотрим ситуацию: время загрузки пустой страницы через Apache составляет около 60 мс, а вызов простейшего HTTP-сервиса 1С — 300 мс. Разница более чем в 200 мс указывает на то, что основное время уходит на инициализацию окружения 1С. Чтобы точно локализовать проблему, полезно провести комплексный замер производительности контура 1С и поиск узких мест — для этого есть инструмент сбора и анализа HTTP-запросов. Чтобы исправить задержки, нам необходимо выполнить грамотную оптимизацию файла .vrd и пула соединений в настройках публикации.
Разберем по шагам параметры в файле default.vrd, которые отвечают за повторное использование сеансов:
Посмотрим на пример настройки секции httpServices в файле .vrd:
<httpServices>
<service name="MyService" rootUrl="my_service" reuseSessions="autouse" sessionMaxAge="1200" poolSize="15" poolTimeout="1200" />
</httpServices>
Проанализируем параметр reuseSessions. Значение autouse позволяет платформе автоматически использовать существующие сеансы из пула, что кардинально снижает время на «холодный старт» подключения. Если вы применяете универсальные процедуры для быстрой организации API (в этом поможет конструктор API и интеграций для 1С), эффект от прогретого пула будет наиболее заметен, так как повторные запросы будут выполняться значительно быстрее (до 15-20 мс вместо 300 мс).
Поскольку в нашем сценарии используется Windows Server, важно учитывать особенности работы модуля MPM (Multi-Processing Module) mpm_winnt. Правильная настройка модулей MPM и производительности Apache 2.4 под Windows поможет ускорить обработку сетевых пакетов. В некоторых случаях для корректной работы инфраструктуры требуется специфическая публикация HTTP-сервиса с использованием клиентского SSL-сертификата, что также накладывает свои требования к конфигурации веб-сервера.
Выясним причину возможных задержек на уровне сетевого взаимодействия. Параметр ThreadsPerChild определяет количество потоков для обработки запросов. Для нагруженных систем рекомендуется увеличивать его:
<IfModule mpm_winnt_module>
ThreadsPerChild 150
ThreadLimit 150
</IfModule>
Также проанализируем влияние DNS-запросов. Если Apache пытается определить имя хоста для каждого входящего IP-адреса, это создает задержку. Отключим эту функцию, установив HostnameLookups Off. Кроме того, рекомендуем заменить localhost на явный IP 127.0.0.1 в настройках подключения к базе, чтобы избежать лишних итераций по разрешению имен через IPv6.
Если используется SSL-сертификат (HTTPS), значительное время тратится на «рукопожатие» (SSL Handshake). Чтобы не выполнять эту процедуру при каждом запросе, критически важна настройка SSL/TLS 1.3 и параметров KeepAlive. Это позволит держать TCP-соединение открытым для серии запросов.
Проверим и установим следующие параметры в httpd.conf:
KeepAlive On — включение режима поддержания соединения.MaxKeepAliveRequests 0 — снимает ограничение на количество запросов в рамках одного соединения.KeepAliveTimeout 60 — время ожидания нового запроса перед закрытием соединения.Использование протокола TLS 1.3 также даст существенный прирост скорости, так как он требует меньше циклов обмена данными для установки защищенного соединения по сравнению с TLS 1.2.
Выясним, как версия платформы влияет на скорость. Начиная с релиза 8.3.25, разработчики 1С внесли технические изменения, которые затронули работу wsap24.dll. В новых версиях оптимизирована сериализация данных и механизм передачи управления от веб-сервера к рабочему процессу rphost. Чтобы убедиться, что база данных не является бутылочным горлышком при передаче данных, стоит провести анализ SQL-сервера глазами 1С-ника.
Как показывают тесты, на версии 8.3.25 при прогретом пуле соединений время отклика может составлять всего 11–17 мс. Поэтому одним из наиболее эффективных решений будет обновление платформы до актуального релиза.
Проанализируем влияние системного окружения. Windows Server 2022 активно использует встроенный антивирус. Для исключения задержек при чтении библиотек 1С и временных файлов, необходимо добавить в исключения:
httpd.exe, rphost.exe, rmngr.exe..dll в папке установки 1С (особенно wsap24.dll).Также убедитесь, что схема электропитания сервера установлена в режим «Высокая производительность» (High Performance), что предотвращает снижение частоты процессора в моменты простоя между запросами.
Подводя итог, мы можем составить алгоритм ускорения HTTP-сервисов:
poolSize и sessionLifeTime в .vrd для удержания активных сеансов 1С.KeepAlive в Apache для сохранения TCP/SSL соединений.Применение этих мер в комплексе позволяет сократить время отклика с 300-500 мс до комфортных 20-50 мс, что критически важно для интеграции между 1С без боли и страданий и стабильной работы мобильных приложений.