При настройке высоконагруженных систем на базе 1С и MS SQL Server системные администраторы часто сталкиваются с необходимостью тонкой настройки операционной системы и СУБД. В этой статье мы подробно разберем, как правильно распределить ресурсы процессора, настроить безопасность памяти и подготовить дисковую подсистему, чтобы добиться максимального быстродействия, особенно в условиях виртуализации.
Разберем фундаментальный вопрос настройки быстродействия Windows. В параметрах системы (Дополнительно — Быстродействие — Распределение времени процессора) доступно два режима: Оптимизировать работу программ или Оптимизировать работу служб. Проанализируем ситуацию: SQL Server технически является процессом sqlserver.exe, но запускается он как системная служба Windows.
Для серверных решений, где основной задачей является работа СУБД, необходимо выбирать вариант «Оптимизировать работу служб» (Background Services). Рассмотрим подробнее, почему это важно:
Функция DEP (Data Execution Prevention) — это технология безопасности, которая помечает области памяти как «неисполняемые». Выясним причину, по которой ее не стоит включать для всех программ на сервере 1С/SQL.
Стандартная рекомендация: включать DEP только для основных служб и программ Windows. Если активировать DEP для всех программ, вы можете столкнуться со следующими проблемами:
Вопрос размера файла подкачки (pagefile) часто вызывает споры. С одной стороны, обработка в ОЗУ быстрее, с другой — Windows требует наличия свопа для корректной работы. Разберем по шагам правильную стратегию управления памятью.
1. Закрепление страниц в памяти (Lock Pages in Memory). Это одна из важнейших настроек для SQL Server. По умолчанию Windows может «сбрасывать» буферный кэш SQL в файл подкачки, если решит, что другой процесс (например, резервное копирование) нуждается в памяти. Это приводит к катастрофическому падению производительности 1С.
Чтобы этого избежать, выполним следующие действия:
secpol.msc (Локальная политика безопасности).Локальные политики — Назначение прав пользователя.Lock pages in memory (Закрепление страниц в памяти).2. Размер файла подкачки. Если у вас большой объем ОЗУ (например, 40 ГБ и выше), нет необходимости создавать файл подкачки размером 1.5 от ОЗУ. Рассмотрим рекомендации:
Использование гипервизора Proxmox (KVM) накладывает свои особенности. Посмотрим на важные параметры виртуальной машины, которые влияют на скорость работы SQL:
Host. Это позволяет гостевой ОС использовать все инструкции физического процессора (AES, AVX), что критично для криптографии и математических расчетов в 1С.virtio-scsi-single и включаем опцию iothread. Это обеспечивает многопоточную обработку ввода-вывода, приближая производительность виртуальных дисков к физическим.Проанализируем ситуацию с разделением серверов. Часто админы разносят сервер 1С и сервер SQL на разные виртуальные машины. Однако, если ресурсы позволяют, установка «все на одном сервере» дает существенный плюс — использование протокола Shared Memory.
Shared Memory позволяет серверу 1С и SQL обмениваться данными напрямую через оперативную память, полностью минуя сетевой стек (даже виртуальный). Это сокращает задержки (latency) при передаче данных. На тяжелых отчетах 1С прирост производительности может достигать 20%.
Если же серверы разделены, обмен идет по протоколу TCP/IP, что добавляет накладные расходы на инкапсуляцию пакетов и работу виртуальных сетевых адаптеров.
Рассмотрим момент, который часто упускают. По умолчанию в Windows (и в BIOS физического сервера) часто стоит сбалансированный режим энергопотребления. Для 1С это «яд».
Необходимо выставить план «Высокая производительность» (High Performance):
cpufreq-set).Если процессор будет постоянно менять частоту, пытаясь сэкономить энергию, задержки в работе 1С станут непредсказуемыми.
Подводя итог, оптимизация — это комплекс мер. Правильное распределение квантов времени процессора в пользу служб, фиксация памяти за SQL Server и отказ от динамического распределения ресурсов в гипервизоре позволят вашей системе 1С работать максимально эффективно.