Перевод дисковой подсистемы сервера СУБД на твердотельные накопители корпоративного класса — один из самых действенных способов устранить задержки ввода-вывода в высоконагруженных базах 1С. Однако слепая установка накопителя корпоративного уровня, такого как Intel SSD DC P3700 (интерфейс PCIe NVMe), без понимания архитектуры работы СУБД часто приводит к неоправданным затратам. Разберем практический опыт эксплуатации таких накопителей, выясним распределение нагрузки между файлами баз данных и определим оптимальные варианты архитектуры дисковой подсистемы.
Прежде чем инвестировать в дорогостоящие NVMe-диски, проанализируем, куда именно приходится основной поток дисковых операций в базах 1С. В типовых сценариях учетных систем интенсивность обращений распределяется неравномерно:
tempdb: принимает на себя до 30–50% всего дискового трафика сервера. Механизмы 1С активно оперируют временными таблицами при проведении документов, формировании сложных отчетов и расчете итогов. Задержки на этом накопителе напрямую вызывают ожидания на уровне СУБД..ldf): выполняет строго последовательную запись (операция WRITELOG). Здесь критична не пропускная способность (гигабайты в секунду), а минимальная задержка отклика (latency), измеряемая в долях миллисекунды..mdf / .ndf): чтение из них активно кэшируется в оперативной памяти (Buffer Pool). Если сервер располагает достаточным объемом RAM, нагрузка на чтение данных существенно снижается, а запись сбрасывается пакетами («грязные» страницы).Практика показывает, что размещение всей базы целиком на одном дорогом NVMe-накопителе часто оказывается избыточным. Наибольшую отдачу дает гибридный подход: размещение базы tempdb и критически важных таблиц на NVMe, в то время как основной массив данных может безопасно располагаться на отказоустойчивом RAID-массиве из SAS или SATA SSD.
Рассмотрим реальный пример внедрения: перенос базы tempdb с классического дискового массива на накопитель Intel DC P3700 позволил сократить среднее время ожидания чтения и записи с 250 мс до 1.3–8 мс. Для получения максимальной отдачи от быстрого диска обязательно выполним комплексную настройку параметров СУБД:
tempdb на несколько файлов данных одинакового размера (рекомендуется создавать от 4 до 8 файлов, ориентируясь на количество физических ядер процессора). Это устраняет внутреннюю конкуренцию за системные страницы распределения (PFS и SGAM).SE_MANAGE_VOLUME_NAME). Это исключит трату времени на обнуление секторов нулями при пересоздании tempdb после перезагрузки сервера.-T1117 (одновременный рост всех файлов группы) и -T1118 (выделение только полных экстентов). В версиях 2016 и новее данное поведение активно по умолчанию.Отдельно отметим идею размещения tempdb на программном RAM-диске в оперативной памяти. Данная схема допустима исключительно для tempdb, так как ее структура пересоздается при каждом старте службы. Размещать на RAM-диске рабочие базы категорически запрещено: при любом аварийном отключении питания данные будут безвозвратно утеряны.
Накопитель Intel SSD DC P3700 относится к корпоративной линейке с высоким ресурсом перезаписи (High Endurance, порядка 10-17 DWPD), однако использование одиночного диска без резервирования создает критическую точку отказа для бизнеса с режимом работы 24/7. Разберем способы организации отказоустойчивости:
Проанализируем технические требования при интеграции PCIe NVMe в существующую инфраструктуру:
Подведем итог: применение накопителей уровня Intel DC P3700 оправдано и показывает великолепные результаты в сценариях, где зафиксированы реальные дисковые задержки. Оптимальная конфигурация под сервер 1С среднего и крупного масштаба выглядит следующим образом:
tempdb и высоконагруженные таблицы переносятся на PCIe NVMe-накопитель корпоративного уровня.