Рассмотрим распространенную проблему при публикации нескольких файловых информационных баз 1С (например, 1С:Бухгалтерия 8 и 1С:Зарплата и Управление Персоналом 8) на веб-сервере IIS. Когда несколько пользователей одновременно работают в разных конфигурациях, рабочий процесс веб-сервера w3wp.exe падает при достижении объема занимаемой оперативной памяти около 3.8 ГБ, и все сеансы пользователей аварийно завершаются.
Проанализируем причины этой нестабильности и разберем пошаговые методы настройки веб-сервера IIS для надежной и непрерывной работы.
Выясним, почему происходит сбой. По умолчанию все информационные базы 1С, опубликованные на IIS, используют один общий пул приложений (DefaultAppPool). Это означает, что все запросы ко всем базам обрабатываются в рамках одного и того же системного процесса w3wp.exe.
Если на веб-сервере используется 32-разрядная (x86) платформа 1С и соответствующий модуль расширения wsisapi.dll, процесс w3wp.exe запускается в 32-битом режиме. Максимальный объем виртуальной адресной памяти для 32-битного процесса в ОС Windows ограничен 4 ГБ. На практике при приближении потребления памяти к 3.8 ГБ процесс исчерпывает адресное пространство и аварийно завершается без предупреждения.
Разберем самый эффективный метод решения проблемы без необходимости смены архитектуры. Чтобы память одной базы не забивала общий процесс, выделим под каждую информационную базу 1С собственный изолированный пул приложений со своим процессом w3wp.exe.
Выполним следующую последовательность действий:
inetmgr и нажмем Enter).Pool_BP3_Base1.True.После выполнения этих настроек для каждой информационной базы будет запускаться свой отдельный процесс w3wp.exe. Лимит в 3.8 ГБ будет применяться к каждой базе независимо, что предотвратит падение всего веб-сервера.
Посмотрим на альтернативный вариант решения — переход на 64-разрядную платформу 1С. Это позволит снимать лимит в 4 ГБ на процесс w3wp.exe.
wsisapi.dll из каталога 64-разрядной платформы.False.В 64-битном режиме процесс w3wp.exe сможет адресовать практически неограниченный объем оперативной памяти сервера (ограничиваясь только физическим объемом RAM).
Для предотвращения внезапных разрывов сессий пользователей и повисания файловых блокировок выполним тонкую настройку дополнительных параметров пула приложений в IIS:
0. По умолчанию значение составляет 20 минут, из-за чего рабочий процесс завершается при временном отсутствии запросов и рвет соединения пользователей.ApplicationPoolIdentity) или группа IIS_IUSRS имеет полные права доступа (чтение, запись, изменение) на папку с файловой базой (файл 1Cv8.1CD) и системный каталог C:\Windows\Temp.Учитываем особенности файлового режима работы 1С при публикации через веб-сервер:
w3wp.exe удерживает файл базы данных 1Cv8.1CD открытым даже после того, как все пользователи закрыли браузеры или тонкие клиенты. Чтобы выполнить обновление конфигурации или выгрузку .dt, недостаточно попросить пользователей выйти — необходимо вручную остановить соответствующий пул приложений в IIS или выполнить команду остановки IIS:
iisreset /stop