При настройке сервера для работы с 1С:Предприятие в связке с MS SQL Server часто возникает вопрос оптимального распределения дисковых ресурсов. Типовая конфигурация с одним быстрым SSD (например, на 500 ГБ) и парой емких HDD (по 1 ТБ) требует грамотного подхода, чтобы избежать «бутылочного горлышка» в производительности, особенно при работе с тяжелыми конфигурациями, такими как «Зарплата и управление персоналом 3.1».
В этой статье мы подробно рассмотрим, как распределить данные по дискам, какие настройки SQL Server критичны для 1С и как подготовить систему к переходу на более ресурсоемкие версии программ.
Проанализируем имеющиеся ресурсы. SSD обладает огромным преимуществом в скорости случайного чтения и записи (IOPS), что критично для баз данных. HDD, даже в зеркальном RAID, значительно медленнее, но надежнее для хранения больших объемов данных, не требующих мгновенного доступа. Разберем по шагам, что и куда следует разместить:
Просто установить 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);
Выясним одну важную техническую деталь: если сервер приложений 1С и MS SQL Server установлены на одном физическом компьютере, передача данных через сетевой протокол TCP/IP избыточна. Она создает дополнительную нагрузку на процессор и стек сетевых протоколов.
Проанализируем настройки подключения. В консоли администрирования 1С при создании базы в поле «Сервер баз данных» попробуйте указать (local) или точку .. В настройках SQL Server Configuration Manager убедитесь, что протокол Shared Memory включен. Это позволит процессам обмениваться данными напрямую через оперативную память, что значительно ускорит работу «тяжелых» отчетов.
Часто причины медленной работы лежат не в дисках, а в настройках Windows. Рассмотрим шаги по оптимизации:
.mdf, .ldf, .ndf).C:\Program Files\1cv8\srvinfo).AppData\Local\Temp).UPDATE STATISTICS).Посмотрим на ситуацию с переходом с ЗУП 2.5 на ЗУП 3.1. Новая редакция построена на управляемых формах и архитектурно гораздо сложнее. Нагрузка на серверную часть возрастает в разы. Если на ЗУП 2.5 хватало частоты процессора 2.5 ГГц, то для ЗУП 3.1 крайне желательно иметь 3.4 ГГц и выше.
Помните, что 1С — это преимущественно однопоточное приложение. Это значит, что одно действие одного пользователя (например, расчет зарплаты) выполняется одним ядром процессора. Если ядро медленное, то даже 64-ядерный сервер не поможет ускорить этот конкретный процесс. Поэтому для 10–15 пользователей приоритетом является высокая тактовая частота, а не количество ядер.
Таким образом, объединив базы на SSD, настроив Shared Memory и ограничив аппетиты SQL Server по памяти, мы получим максимально производительную систему на имеющемся «железе».