При организации работы небольшого офиса (до 10-15 пользователей) часто возникает дилемма: использовать ли простую файловую базу, опубликованную на веб-сервере (IIS или Apache), или сразу переходить на полноценный клиент-серверный вариант (SQL). Несмотря на то что файловый вариант кажется проще в настройке, на практике пользователи часто сталкиваются с «тормозами» и неэффективным использованием мощностей сервера. В этой статье мы подробно разберем, почему так происходит, и проанализируем технические особенности обеих архитектур.
Рассмотрим главную техническую причину, по которой файловая база через IIS работает медленно даже на мощном железе. Разберем ситуацию: у вас есть процессор i7 с множеством ядер, но система кажется отзывчивой только для одного пользователя. Это происходит из-за того, что веб-расширение 1С при работе с файловой базой данных работает в однопоточном режиме.
Проанализируем механику процесса: когда клиент (тонкий клиент или браузер) отправляет запрос к базе, веб-сервер ставит этот запрос в очередь. Пока один серверный вызов не будет полностью обработан и результат не будет возвращен пользователю, следующий запрос от другого сотрудника не начнет выполняться. Если один пользователь запустил тяжелый отчет в УНФ, остальные девять человек фактически «курят», ожидая освобождения канала связи с файлом .1CD. Именно поэтому вы видите низкую загрузку процессора — сервер простаивает не потому, что ему легко, а потому, что архитектура не позволяет ему обрабатывать задачи параллельно.
Выясним причину, по которой SQL Server (или PostgreSQL) показывает лучшие результаты по загрузке ресурсов. В отличие от веб-сервера, который при работе с файловой базой выступает лишь посредником, SQL Server является интеллектуальной системой управления данными.
Buffer Pool. Он кэширует индексы и часто используемые таблицы. Если у вас на сервере 16 Гб ОЗУ, SQL заберет их для того, чтобы мгновенно выдавать данные без обращения к диску. Файловая база на IIS полагается только на системный кэш Windows, который работает гораздо менее агрессивно и эффективно.i7 будет загружен равномерно, что обеспечит высокую общую пропускную способность системы.Проанализируем надежность. Файловая база данных — это, по сути, один большой файл 1Cv8.1CD. При работе через IIS любая сетевая ошибка или сбой процесса веб-сервера в момент записи может привести к повреждению внутренней структуры таблиц. Для исправления ситуации придется использовать утилиту chdbfl.exe, что требует монопольного доступа и остановки работы всех сотрудников.
В варианте с SQL ситуация принципиально иная. Система ведет транзакционный лог. Даже если сервер внезапно перезагрузится, СУБД при старте откатит незавершенные транзакции и приведет базу в согласованное состояние автоматически. Кроме того, в файловом режиме существует жесткое ограничение на размер одной внутренней таблицы (обычно это 4 Гб), что для активно растущей УНФ может стать критичным уже через год работы.
Если вы все же решили остаться на файловом варианте, разберем один важный практический совет. Часто тормоза при подключении возникают не из-за самой базы, а из-за механизмов разрешения имен DNS. Посмотрим на рекомендации опытных администраторов: при публикации базы и настройке подключений лучше использовать IP-адрес сервера, а не его сетевое имя (HostName).
Система часто тратит значительное время на то, чтобы выяснить, какому адресу соответствует имя «Server-1С». Прямое указание IP исключает эту задержку. Также стоит обратить внимание на настройки AppPool (пула приложений) в IIS. По умолчанию там включен «Режим приостановки» (Idle Time-out) через 20 минут бездействия. Рекомендуется установить этот параметр в 0, чтобы сервер не «засыпал» и первый утренний пользователь не ждал долгого «прогрева» системы.
Рассмотрим ошибочное мнение, что Web-сервер + SQL будет работать медленнее, чем просто SQL. На самом деле, в клиент-серверном варианте IIS выполняет роль тонкого прокси-шлюза. Он просто транслирует запросы от клиента к серверу приложений 1С. Это не дает значительного прироста скорости (кроме кэширования статики, например, картинок интерфейса), но и не создает тех «затыков», которые характерны для файлового режима. Такая связка является наиболее профессиональным и отказоустойчивым решением для работы через интернет или при использовании специфического оборудования, не поддерживающего RDP.
Подводя итог, разберем, какой путь выбрать для 10 пользователей УНФ:
Для экономии бюджета на лицензиях СУБД можно рассмотреть использование бесплатной версии PostgreSQL, которая в связке с 1С показывает отличные результаты на небольших внедрениях.