Как правильно распределить файлы базы данных 1С и логи SQL между разными типами SSD (NVMe и SATA)

Системный администратор 1С v8.3 (Обычные формы)
← На главную

При настройке высокопроизводительного сервера для связки 1С:Предприятие + MS SQL Server часто возникает вопрос оптимального распределения дисковой подсистемы. В условиях, когда в распоряжении администратора есть накопители разных типов — например, быстрый NVMe (Samsung PM983) и серверный SATA SSD (Kingston DC500M) — выбор правильной стратегии размещения файлов напрямую влияет на скорость работы пользователей в «УПП» или «Документообороте».

В данной статье мы разберем, стоит ли разделять файлы данных (MDF) и логи транзакций (LDF) по разным физическим дискам, как оптимизировать работу TempDB и какие дополнительные настройки SQL-сервера помогут выжать максимум из нового железа.

Анализ производительности накопителей: NVMe против SATA

Рассмотрим ситуацию, когда сервер оснащен двумя принципиально разными SSD. Результаты тестов (например, в Samsung Magician) показывают колоссальный разрыв в производительности:

  1. Samsung PM983 (NVMe M.2): Около 440 000 IOPS на чтение и 340 000 IOPS на запись.
  2. Kingston DC500M (SATA): Около 100 000 IOPS на чтение и 80 000 IOPS на запись.

На первый взгляд кажется, что NVMe-диск в 4 раза быстрее, и логично было бы разместить всё на нем. Однако Kingston DC500M позиционируется как диск серии Mixed-Use (смешанная нагрузка) с высокой выносливостью. Проанализируем, как распределить нагрузку так, чтобы использовать сильные стороны каждого устройства.

Стратегия размещения файлов базы данных и логов

Разберем оптимальную схему размещения файлов для 60–80 активных пользователей 1С:

1. Основные файлы данных (.mdf) — на NVMe Samsung PM983. Это обеспечит минимальные задержки при случайном чтении данных, что критично для построения сложных отчетов и работы запросов в 1С. Поскольку база (например, 120 ГБ) полностью помещается на накопитель 960 ГБ, это приоритетный вариант.

2. Логи транзакций (.ldf) — на SATA Kingston DC500M или NVMe. Традиционно логи SQL рекомендуют выносить на отдельные физические диски. Лог транзакций пишется последовательно. Если мы вынесем его на Kingston, мы изолируем очередь записи лога от очереди случайного чтения данных на Samsung. Это также поможет продлить ресурс основного NVMe-накопителя, так как 1С генерирует огромный поток мелких записей в лог. Однако, учитывая огромный запас по IOPS у Samsung, допустимо оставить логи и там, если Kingston сильно нагружен системой.

3. Системные базы (master, model, msdb) — на SATA Kingston. Эти базы не требуют высокой производительности и могут спокойно сосуществовать с операционной системой.

Оптимизация TempDB — «сердце» производительности 1С

Для систем на базе 1С работа с временными таблицами является ключевым фактором. Проанализируем шаги по настройке TempDB:

Настройка временных папок службы 1С (rphost)

Многие забывают, что сервер 1С активно использует временные файлы профиля пользователя, от имени которого запущен процесс rphost. Рассмотрим, как это ускорить:

По умолчанию эти файлы находятся на системном диске (C:). В нашем случае системный диск — это Kingston. Однако для ускорения тяжелых операций (например, расчет себестоимости в УПП) рекомендуется перенести временные папки на быстрый Samsung NVMe. Это делается через переменные окружения TEMP и TMP для учетной записи службы 1С или через перенастройку пути сеансовых данных в параметрах сервера 1С.

Важные настройки операционной системы и MS SQL Server

Чтобы новое железо (Xeon E-2286G) не работало вполсилы, выполним следующие настройки:

1. Схема электропитания: В Windows Server обязательно выставляем режим «Высокая производительность» (High Performance). Если оставить «Сбалансированную», процессор будет постоянно сбрасывать частоту, что приведет к микрофризам в 1С при переходе между задачами.

2. Мгновенная инициализация файлов (IFI): Проанализируем ситуацию: когда база 1С или лог внезапно увеличиваются (autigrow), SQL Server по умолчанию заполняет новое пространство нулями. Это вызывает задержку. Чтобы этого избежать, нужно включить право «Выполнение задач по обслуживанию томов» (Perform volume maintenance tasks) для сервисного аккаунта SQL Server в локальных политиках безопасности.

3. Настройка MAXDOP: Для 1С на 6-ядерном процессоре рекомендуется ограничить максимальную степень параллелизма. Попробуем установить Max Degree of Parallelism = 1 или 2. Это предотвратит ситуацию, когда один тяжелый запрос отбирает все ресурсы процессора у остальных 60 пользователей.

Безопасность и отсутствие RAID

Рассмотрим риски ситуации, описанной в теме: отсутствие RAID-массива. Использование одиночного SSD (даже серверного) — это риск потери данных при внезапном выходе накопителя из строя. Проанализируем план действий:

  1. Оба используемых диска (Kingston DC500M и Samsung PM983) обладают защитой PLP (Power Loss Protection) — это конденсаторы, позволяющие сбросить кэш на флеш-память при потере питания. Это критически важно для SQL-сервера.
  2. Поскольку зеркала (RAID 1) нет, необходимо настроить ежечасный бэкап логов транзакций на физически другой носитель (HDD), чтобы минимизировать потерю данных в случае гибели SSD.
  3. Мониторинг износа: регулярно проверяйте параметр Percentage Used в SMART дисков. При интенсивной работе в УПП ресурс может выработаться быстрее расчетного.

Итоги распределения ресурсов

Подведем итог нашей совместной работы по планированию сервера:

Такая конфигурация позволит получить максимум от скорости NVMe в самых нагруженных операциях 1С, сохранив при этом стабильность работы системных компонентов.

← На главную