При планировании серверной инфраструктуры для автоматизации розничной торговли на базе 1С:Предприятие 8.3 вопрос объема оперативной памяти является критическим. Неправильный расчет ресурсов на этапе закупки оборудования может привести к "фризам" на кассах, медленному формированию отчетов и нестабильной работе всей системы. В данной статье мы детально разберем, почему для 30 пользователей 16 ГБ ОЗУ будет недостаточно и почему 32 ГБ — это необходимый минимум для стабильной эксплуатации.
Для того чтобы понять, сколько памяти нам действительно нужно, проанализируем, как она распределяется между основными компонентами серверной среды, если сервер 1С и SQL-сервер установлены на одной машине (типичный сценарий для 30 пользователей).
Рассмотрим по пунктам, куда уходят ресурсы:
rphost потребляет память на каждый открытый сеанс пользователя. В конфигурации "Розница" один активный сеанс в среднем занимает от 200 до 400 МБ. Умножим 30 пользователей на средние 300 МБ и получим около 9–12 ГБ только под нужды сервера 1С.Просуммируем минимальные значения: 4 ГБ (ОС) + 9 ГБ (1С) + 8 ГБ (SQL) = 21 ГБ. Уже на этом этапе очевидно, что при наличии всего 16 ГБ система начнет активно использовать файл подкачки на диске, что мгновенно снизит производительность в десятки раз.
Разберем технические нюансы используемых версий SQL Server, так как они напрямую влияют на потребление памяти. Существует распространенное заблуждение относительно лимитов различных редакций.
Проанализируем возможности СУБД:
Max Server Memory.Выясним причину, по которой нельзя оставлять настройки SQL Server "по умолчанию". Если не ограничить аппетиты SQL-сервера, он со временем поглотит всю доступную память, не оставляя ресурсов для процесса rphost и самой операционной системы. В результате пользователи начнут получать ошибки "Недостаточно памяти на сервере".
Посмотрим на ситуацию со стороны прикладного решения. "Розница" — это высоконагруженная система с точки зрения количества транзакций. Каждое пробитие чека, работа с торговым оборудованием, запросы к остаткам создают множество мелких, но частых обращений к базе данных.
Особое внимание уделим работе с временными таблицами. При построении отчетов или выполнении сложных запросов 1С активно использует TempDB. Если оперативной памяти недостаточно для кэширования этих операций, нагрузка перекладывается на дисковую подсистему. Даже использование SSD/NVMe дисков не заменит скорость работы оперативной памяти. Поэтому наличие свободного объема ОЗУ напрямую влияет на отсутствие задержек при оформлении продаж.
На основе проведенного анализа мы можем сформулировать рекомендации по конфигурации сервера:
Max Server Memory для SQL Server на уровне 16 000 – 18 000 МБ.rphost. В случае утечек памяти в платформе 1С может потребоваться настройка перезапуска рабочих процессов в консоли администрирования серверов 1С.Рассмотрим пример настройки ограничения памяти через SQL Management Studio:
-- Пример команды для ограничения памяти SQL Server до 16 ГБ
EXEC sys.sp_configure N'show advanced options', N'1'
RECONFIGURE WITH OVERRIDE
GO
EXEC sys.sp_configure N'max server memory (MB)', N'16384'
RECONFIGURE WITH OVERRIDE
GO
EXEC sys.sp_configure N'show advanced options', N'0'
RECONFIGURE WITH OVERRIDE
GO
Таким образом, мы выяснили, что для 30 пользователей 1С:Розница вариант с 16 ГБ ОЗУ является недопустимым, так как он гарантированно приведет к деградации производительности. Установка 32 ГБ — это рациональный минимум, который обеспечивает баланс между стоимостью оборудования и стабильностью бизнес-процессов. Если бюджет позволяет, расширение до 64 ГБ станет отличной инвестицией в отказоустойчивость вашей торговой точки.