Тонкие настройки MS SQL для работы с сервер 1С:Предприятие

Перенос баз 1С со старого сервера на новый

В статье рассматривается задача:

Как перенести 18 баз 1С со старого сервера MS SQL на новый


В рамках выполнения задачи нам понадобится: установить новую платформу 1С, настроить SQL для работы с сервером 1С:Предприятие


Клиентом были предоставлены лицензии: на сервер 1С:Предприятие, ПИН-коды на рабочие места, лицензии на конфигурации платформы, лицензия MS SQL.

Действуем согласно инструкциям от 1С:

  1. Устанавливаем сервер 1С:Предприятие, активируем лицензии на рабочие места.
  2. Устанавливаем сервер Microsoft SQL Server.
  3. Настраиваем сервер MS SQL, согласно рекомендациям от 1С.

Чтобы ускорить работу связки 1С + Microsoft SQL Server, мы всегда ставим сервер 1С Предприятия и MS SQL на разные сервера (виртуальные машины).


Перед началом работ надо сделать следующие вещи:

Проверить и при необходимости установить последний Service Pack на Windows Server.
Накатить последний cumulative update на SQL. Проверяем наличие по ссылке.

Готовим диск для размещения баз SQL
Для этого нам надо выровнять сектора дисков по границе 1024Кб, для этого форматируем диск с размером блока 64Кб.

Форматирование диска с размером кластера 64К
Если время позволяет, лучше снять галочку «Быстрое форматирование».

Для повышения быстродействия рекомендуется на папке, где будет лежать база SQL, убрать сжатие и шифрование (последнее по желанию).

Отключаем сжатие папки с базами SQL

Теперь надо настроить пользователя, от которого запущена служба Microsoft SQL Server.
Настройка сводиться к добавление разрешений для этого пользователя на:

«Database instant file initialization»  или в русской версии «Выполнение задач по обслуживанию томов».

Тонкие настройки MS SQL. Добавление пользователю прав на "Выполнение задач по обслуживанию томов".

«Lock pages in memory» или в русской версии «Блокировку страниц в памяти»

Добавление пользователю прав на блокировку страниц памяти

Тонкие настройки сервера MS SQL для хранения баз 1С

Настроим работу сервера SQL с оперативной памятью

Для этого в настройках необходимо правильно настроить выделение памяти для MS SQL сервера.

Настройка потребления памяти сервером MS SQL для работы с базами 1С

Минимальный размер памяти выделяемый SQL серверу желательно установить в 50% от общего количества памяти, установленной на сервере.
Максимальный размер выделяемой серверу памяти считается по формуле: общее количество памяти — общее количество памяти * 1024/16384.
Суть формулы в том, чтобы оставлять на каждые 16Гб общего объема памяти 1Гб памяти для операционной системы.

В нашем примере в сервер установлено 32Гб оперативной памяти или 32767Мб, если быть точным.
Минимальный выделяемый размер мы устанавливаем в 16383Мб, максимальный в 30719Мб.


ВАЖНО:

Если у Вас сервер 1С Предприятия установлен вместе с Microsoft SQL Server, то верхний порог памяти необходимо уменьшить на величину, достаточную для работы сервера 1С (минимум 4Гб, лучше 8Гб).


Настройка параметра «max degree of parallelism»или «максимальная степень параллелизма» в русской версии

Параметр используется для ограничения числа процессоров, применяемых в планах параллельного выполнения. Если не вдаваться в подробности, значение определяет максимальное число потоков процессора, используемых для выполнения одного запроса к базе данных. Влияние на скорость работы проявляется в следующем: если попадается большой и сложный запрос, который выполняется длительное время, при отсутствии ограничений на использование процессора, он может утилизировать все процессорное время в системе.
Рекомендуется выставлять значение этого параметра равному «1».

max degree of parallelism - сколько потоков процессора может использовать запрос к базе данных


Рекомендация:

Файлы данных и журналы транзакций правильно размещать на разных физических дисках или массивах RAID.
При выборе диска важно знать, что журналы транзакций надо размещать на наиболее быстрых дисках, т.к. к ним происходят постоянные обращения.


Мы завершили настройку нового MS SQL и сервера 1С предприятие, перенесли туда базы.

Но на 10 базе у нас возникли трудности, нагрузка на процессор резко возросла и стала достигать 100%. Работать на сервере стало практически невозможно.

Как бороться со 100% нагрузкой процессора после переноса баз 1С со старого SQL сервера на новый

Проблема в том, что после переноса выполняются регламентные задания. Если Вы перенесете одну не очень большую базу, нагрузка будет кратковременной и позволит работать на сервере, но мы переносим 18 баз и все они довольно большие. Поэтому после переноса 10й базы у нас нагрузка на процессор выросла до 100%.

Компания 1С не рекомендует выключать фоновые задания, но в целях стабильности работы после переноса, приняли решение временно заблокировать выполнение регламентных фоновых заданий. Потом, после окончания переноса, по одной базе разблокировать.

Блокировка фоновых заданий в 1С

Тем самым нам удалось снизить нагрузку на сервер и перенести все базы.

Статья подготовлена компанией Сервисы для Бизнеса сервера для удаленной работы в России и Европе, безопасная почта, обмен файлами через Интернет с шифрованием (аналог DroBox).

Другие статьи, которые могут быть полезны

Настройка резервного копирования баз 1С