Как правильно разместить базы 1С и MS SQL Server на сервере с SSD и HDD?

Системный администратор 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом IT и автоматизация бизнеса
← На главную

При настройке сервера для работы с 1С:Предприятие в связке с MS SQL Server часто возникает вопрос оптимального распределения дисковых ресурсов. Типовая конфигурация с одним быстрым SSD (например, на 500 ГБ) и парой емких HDD (по 1 ТБ) требует грамотного подхода, чтобы избежать «бутылочного горлышка» в производительности, особенно при работе с тяжелыми конфигурациями, такими как «Зарплата и управление персоналом 3.1».

В этой статье мы подробно рассмотрим, как распределить данные по дискам, какие настройки SQL Server критичны для 1С и как подготовить систему к переходу на более ресурсоемкие версии программ.

Распределение данных по дисковой подсистеме

Проанализируем имеющиеся ресурсы. SSD обладает огромным преимуществом в скорости случайного чтения и записи (IOPS), что критично для баз данных. HDD, даже в зеркальном RAID, значительно медленнее, но надежнее для хранения больших объемов данных, не требующих мгновенного доступа. Разберем по шагам, что и куда следует разместить:

  1. Базы данных 1С (файлы .mdf): Однозначно размещаем на SSD. Для 10–15 пользователей SSD объемом 500 ГБ вполне достаточно для операционной системы, самого SQL Server и рабочих баз. Скорость доступа к данным — это основной фактор отсутствия «тормозов» в интерфейсе.
  2. Логи транзакций (файлы .ldf): В среде 1С каждая транзакция ждет подтверждения записи в лог. Поэтому, если ваш SSD обладает достаточным ресурсом (TBW), логи также следует оставить на SSD. Вынос логов на HDD оправдан только в случае крайне низкого ресурса SSD или критической нехватки места, но это замедлит работу системы.
  3. Временная база TempDB: Это «черновик» SQL Server, который активно используется при формировании сложных отчетов 1С. Ее необходимо размещать только на SSD.
  4. Кэш пользователей и профили: На SSD. Кэш 1С состоит из множества мелких файлов, и их чтение с HDD превратит работу пользователей в мучение.
  5. Операционная система: Можно оставить на SSD для быстрой загрузки и работы своп-файла, либо (если вы опасаетесь за место) вынести на зеркало из HDD. Однако современные системы лучше чувствуют себя на твердотельных накопителях.
  6. Бэкапы и архивы: Только на HDD. Запись бэкапов создает линейную нагрузку, с которой HDD отлично справляются, при этом экономя дорогой ресурс SSD.

Тонкая настройка MS SQL Server для нужд 1С

Просто установить SQL Server недостаточно. Рассмотрим параметры, которые напрямую влияют на то, насколько эффективно программа будет использовать железо.

Ограничение оперативной памяти: SQL Server по умолчанию стремится занять всю доступную память. Если на этом же сервере работает служба rphost (сервер приложений 1С), это приведет к конфликту. Проанализируем ситуацию: серверу 1С нужно минимум 4 ГБ, операционной системе — еще 4 ГБ. Остальное можно отдать SQL. Установите Max Server Memory в свойствах сервера, чтобы оставить ОС и 1С «воздух», иначе система уйдет в жесткий свопинг на диск.

Параметр MAXDOP: Для баз 1С рекомендуется устанавливать значение Maximum Degree of Parallelism равным 1 (или 2, если ядер много). Это заставляет SQL Server выполнять один запрос в рамках одного потока, что предотвращает специфические блокировки 1С при выполнении параллельных планов запросов.

Настройка файлов TempDB: Рекомендуется разбивать tempdb на несколько файлов одинакового размера. Обычно количество файлов должно соответствовать количеству логических ядер процессора (но не более 8). Это снижает конкуренцию за распределение страниц данных.


-- Пример изменения количества файлов TempDB через T-SQL
ALTER DATABASE tempdb MODIFY FILE (NAME = tempdev, SIZE = 1GB);
-- Добавление новых файлов
ALTER DATABASE tempdb ADD FILE (NAME = tempdev2, FILENAME = 'C:\SQLData\tempdb2.mdf', SIZE = 1GB);

Использование протокола Shared Memory

Выясним одну важную техническую деталь: если сервер приложений 1С и MS SQL Server установлены на одном физическом компьютере, передача данных через сетевой протокол TCP/IP избыточна. Она создает дополнительную нагрузку на процессор и стек сетевых протоколов.

Проанализируем настройки подключения. В консоли администрирования 1С при создании базы в поле «Сервер баз данных» попробуйте указать (local) или точку .. В настройках SQL Server Configuration Manager убедитесь, что протокол Shared Memory включен. Это позволит процессам обмениваться данными напрямую через оперативную память, что значительно ускорит работу «тяжелых» отчетов.

Оптимизация операционной системы и обслуживание

Часто причины медленной работы лежат не в дисках, а в настройках Windows. Рассмотрим шаги по оптимизации:

  1. План электропитания: Переключите сервер в режим «Высокая производительность». В сбалансированном режиме процессор постоянно меняет частоту (парковка ядер), что вызывает микро-задержки, очень заметные в 1С.
  2. Исключения антивируса: Это критический момент. Антивирус должен игнорировать:
    • Файлы баз данных (.mdf, .ldf, .ndf).
    • Папку с кэшем сервера 1С (обычно C:\Program Files\1cv8\srvinfo).
    • Временные папки пользователей (AppData\Local\Temp).
  3. Модель восстановления (Recovery Model): Если вам не нужно восстановление данных на каждую секунду времени (point-in-time recovery), установите модель Simple. Это предотвратит неконтролируемый рост лог-файла, который может забить весь SSD.
  4. Регламенты SQL: Разберем обязательный минимум. Раз в неделю (или чаще) необходимо выполнять:
    • Обновление статистики (UPDATE STATISTICS).
    • Реорганизацию или дефрагментацию индексов.
    Без этих процедур даже на самом быстром SSD база начнет тормозить через месяц активной работы.

Переход на ЗУП 3.1: к чему готовиться?

Посмотрим на ситуацию с переходом с ЗУП 2.5 на ЗУП 3.1. Новая редакция построена на управляемых формах и архитектурно гораздо сложнее. Нагрузка на серверную часть возрастает в разы. Если на ЗУП 2.5 хватало частоты процессора 2.5 ГГц, то для ЗУП 3.1 крайне желательно иметь 3.4 ГГц и выше.

Помните, что 1С — это преимущественно однопоточное приложение. Это значит, что одно действие одного пользователя (например, расчет зарплаты) выполняется одним ядром процессора. Если ядро медленное, то даже 64-ядерный сервер не поможет ускорить этот конкретный процесс. Поэтому для 10–15 пользователей приоритетом является высокая тактовая частота, а не количество ядер.

Таким образом, объединив базы на SSD, настроив Shared Memory и ограничив аппетиты SQL Server по памяти, мы получим максимально производительную систему на имеющемся «железе».

← На главную