При организации локального рабочего места разработчика 1С на ноутбуке или домашнем ПК мы часто сталкиваемся с проблемой дефицита ресурсов. Современные конфигурации, такие как ЗУП 3.1 КОРП или УПП 1.3, требуют значительных мощностей процессора и большого объема оперативной памяти. Когда на борту всего 16 Гб, а нужно запустить и MS SQL Server, и сервер 1С, и несколько сеансов конфигуратора с отладкой, система начинает работать на пределе возможностей. Разберем подробно, как сбалансировать нагрузку и сколько памяти «отдать» SQL серверу, чтобы работа оставалась комфортной.
Прежде чем выставлять ограничения в настройках SQL, нам необходимо понять, из чего складывается потребление памяти на компьютере разработчика. Рассмотрим типовой сценарий, когда у нас установлено 16 Гб ОЗУ. Посчитаем обязательные расходы системы:
rphost может потреблять от 2 до 4 Гб памяти. Если мы работаем с КОРП-версиями, аппетиты могут быть еще выше.Просуммируем: 3 (ОС) + 2 (Браузер) + 3 (Сервер 1С) + 1 (Клиент) = 9 Гб. Таким образом, в распоряжении SQL сервера в идеале остается около 6–7 Гб. Если мы ограничим SQL сервер планкой в 1 Гб, как предлагалось в некоторых экспериментах, мы получим катастрофическое падение производительности дисковой подсистемы.
Выясним причину, по которой лимит в 1 Гб для SQL является плохим решением. MS SQL Server использует оперативную память для кэширования данных (Buffer Pool). Если памяти катастрофически мало, сервер вынужден постоянно выгружать данные из оперативной памяти на диск и считывать их обратно при малейшем запросе.
Даже если у вас установлен быстрый SSD NVMe, скорость обмена данными с ним в разы ниже скорости оперативной памяти. В результате при обновлении конфигурации УПП вы увидите, что процессор загружен не полностью, диск работает на 10%, а процесс тянется мучительно долго. Это происходит из-за постоянных задержек на ожидание данных с диска. Оптимальным значением для 16 Гб ОЗУ будет ограничение Max Server Memory на уровне 6144 – 8192 Мб.
Рассмотрим по шагам, как установить верхний порог потребления памяти. Для этого нам понадобится SQL Server Management Studio (SSMS):
Также это можно сделать с помощью скрипта T-SQL:
EXEC sys.sp_configure N'show advanced options', N'1';
RECONFIGURE;
EXEC sys.sp_configure N'max server memory (MB)', N'6144';
RECONFIGURE;
Чтобы Windows не пыталась «отобрать» память у SQL сервера в пользу системного кэша при запуске тяжелого браузера, проанализируем настройку Lock Pages in Memory (Блокировка страниц в памяти). Это позволит SQL серверу удерживать выделенные ему данные в физической памяти, не сбрасывая их в файл подкачки.
Для настройки выполним следующие действия:
Win + R, введем secpol.msc и нажмем Enter.MSSQLSERVER.Еще один важный параметр — Instant File Initialization (IFI). Он значительно ускоряет разворачивание баз из .bak файлов и рост файлов данных, что критично при работе с базами ЗУП КОРП по 30 Гб. Для включения дайте пользователю службы SQL право на «Выполнение задач по обслуживанию томов» (Perform volume maintenance tasks) в той же оснастке secpol.msc.
Проанализируем ситуацию: если у вас установлена лицензия 1С:Предприятие КОРП, вы имеете возможность управлять потреблением памяти со стороны сервера 1С. В консоли администрирования кластера серверов можно задать параметры:
Это убережет ваш ноутбук от ситуации, когда один неудачный запрос в отладке «съедает» все 16 Гб, вызывая полное зависание системы и принудительную перезагрузку.
Посмотрим на ситуацию со стороны железа. В ноутбуках (как в упомянутом HP 250 G8) процессоры имеют ограниченный тепловой пакет (TDP). При длительной нагрузке (обновление конфигурации) процессор нагревается и сбрасывает частоты (троттлинг).
Если вы видите загрузку процессора 70-80%, и при этом все «тормозит», проверьте схему электропитания. Убедитесь, что выбран режим «Максимальная производительность». Также стоит помнить, что современные SSD NVMe очень быстры, но при нехватке оперативной памяти даже они становятся «бутылочным горлышком» из-за специфики работы SQL сервера с экстентами данных.
Проанализировав все факторы, мы можем составить оптимальный план настройки локального сервера для разработчика 1С:
max server memory — 6 Гб.rphost — 4 Гб.tempdb на самый быстрый диск и разделите их на несколько частей (по количеству ядер процессора). Это ускорит тяжелые транзакции при обновлении метаданных.Важное замечание: Если ваши задачи подразумевают одновременное обновление двух и более тяжелых конфигураций (например, две УПП), 16 Гб памяти — это критический минимум. В такой ситуации лучше закрывать все лишние приложения (браузеры, мессенджеры) и отдавать SQL серверу чуть больше памяти (до 8 Гб), временно жертвуя комфортом работы в ОС.