При развертывании инфраструктуры 1С на базе ОС Linux (например, CentOS) перед системными администраторами часто встает вопрос выбора способа публикации файловой базы для работы через тонкий клиент. Традиционно используются три основных варианта: доступ через сетевую папку Samba (толстый клиент), публикация через веб-сервер Apache и использование автономного сервера 1С. Практические тесты показывают существенную разницу в скорости работы этих решений. В данной статье мы разберем, почему специализированный автономный сервер выигрывает в производительности и что можно сделать для ускорения работы универсальных веб-серверов.
Рассмотрим результаты эксперимента, в котором сравнивалась работа файловой базы в гигабитной сети на Linux-хосте:
oplocks) и огромных задержках при передаче больших объемов данных по протоколу SMB. Тонкий клиент в этом режиме практически не используется, так как вся логика выполняется на стороне клиента, что нагружает сеть.Выясним причину, почему автономный сервер обходит Apache. Как справедливо замечено в обсуждении, система из двух звеньев (Клиент -> Автономный сервер) всегда будет работать быстрее системы из трех звеньев (Клиент -> Apache -> mod_1c -> Ядро 1С). Разберем это подробнее.
Проанализируем ситуацию с точки зрения обработки запроса. Когда мы используем автономный сервер (процесс ibsrv), запрос от тонкого клиента попадает напрямую в среду исполнения 1С. В случае с Apache цепочка выглядит следующим образом: Сетевой стек -> Apache -> Анализ конфигурации (например, поиск .htaccess) -> Передача данных через интерфейс модулей в mod_1c -> Обработка внутри 1С.
Основные факторы превосходства автономного сервера:
MPM Prefork, создавая отдельные процессы для соединений, что дорого обходится в плане оперативной памяти и переключения контекста процессора. Автономный сервер использует легковесную потоковую модель (multithreading), изначально спроектированную под архитектуру 8.3.Посмотрим на работу с файлом базы данных 1Cv8.1CD. Автономный сервер «единолично» владеет доступом к файлу базы. Это позволяет ему более агрессивно использовать механизмы внутреннего кэширования данных. В случае с Apache, веб-сервер конкурирует за файловые дескрипторы и ресурсы системы с другими возможными модулями, что создает микрозадержки, критичные для высоконагруженных операций, таких как перепроведение документов.
Для объективной оценки производительности рекомендуется проводить тесты на конкретных операциях. Например, замерим время выполнения следующего кода при разных типах подключения:
// Пример замера производительности на сервере
НачалоЗамера = ТекущаяДатаСеанса();
Для Итерация = 1 По 100 Цикл
ДокументОбъект = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
ДокументОбъект.Дата = ТекущаяДатаСеанса();
ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
КонецЦикла;
КонецЗамера = ТекущаяДатаСеанса();
Сообщить("Время выполнения 100 проведений: " + (КонецЗамера - НачалоЗамера) + " сек.");
В ходе таких экспериментов автономный сервер обычно показывает преимущество в 15-20% по сравнению с Apache в стандартной конфигурации.
Если по каким-то причинам использование автономного сервера невозможно (например, из-за ограничения в 3 бесплатных подключения или необходимости сложной настройки безопасности), можно попытаться оптимизировать Apache. Рассмотрим по шагам, что нужно сделать:
В конфиге httpd.conf установите:
KeepAlive OnKeepAliveTimeout 15mod_autoindex, mod_status, mod_userdir), которые не нужны для работы 1С. Отключите их, чтобы облегчить процесс.AllowOverride None. Это избавит Apache от необходимости сканировать файловую систему на наличие файлов конфигурации при каждом запросе.Выясним причину выбора того или иного решения. Автономный сервер 1С — это идеальный выбор для небольших рабочих групп или филиалов, где требуется максимальная скорость «из коробки» и простота развертывания. Его главным ограничением является лицензионная политика: для работы более чем 3 пользователей потребуется полноценная серверная лицензия (ПРОФ или КОРП).
Apache остается незаменимым в сценариях, где важна гибкость: настройка сложных правил SSL, фильтрация по IP, защита от DOS-атак или интеграция с другими веб-сервисами на одном порту. Хотя догнать автономный сервер по чистой скорости работы с файловой базой ему будет крайне сложно из-за «лишнего» архитектурного слоя, правильная настройка модулей управления процессами (MPM) позволяет минимизировать этот разрыв.
При выборе решения всегда ориентируйтесь на количество пользователей и сложность ваших бизнес-процессов. Для тяжелых отчетов и массового проведения документов на Linux-платформе автономный сервер на данный момент является наиболее производительным "легким" решением для файловых баз.