Телефон: +7 (861) 279-33-66
Контактная информация

Ускоряем работу системы "1С:ERP Управление предприятием 2". Кейс по оптимизации производительности баз данных.

Ускоряем работу системы "1С:ERP Управление предприятием 2". Кейс по оптимизации производительности баз данных.

Рассказываем об оптимизации производительности ERP-системы на примере уже решенного кейса.

ПРОБЛЕМА ЗАКАЗЧИКА
Низкая скорость работы ERP-системы.

ИСХОДНЫЕ ДАННЫЕ
Конфигурация оборудования
Все пользователи работают в терминале (сервер терминалов). 1С и MSSQL расположены на одном сервере.

Сбор счетчиков производительности ОС настроен в соответствии со статьей: http://its.1c.ru/db/metod8dev#content:5838:hdoc. Регламентные задания на MSSQL настроены в соответствии с рекомендациями.

Ранее выполнялась реконфигурация дисковой подсистемы сервера 1С и были добавлены диски SSD.

На данный момент имеем:
  • диск C (система) — RAID 1;
  • диск D (базы данных, файлы mdf) — RAID 10;
  • диск E (файлы логов транзакций ldf) — RAID 10;
  • диск F (Temp DB) — RAID 1 на SSD.
Баз данных достаточно много. Это и копии баз, и старые базы, и базы, которые еще не переведены в ERP. Целевая база одна — рабочая база ERP.

Статистика производительности
  • открытие справочника Контрагенты — 6 секунд;
  • открытие карточки клиента — 5 секунд;
  • открытие журнала документов — 3-4 секунды;
  • открытие справочника Номенклатура — 5 секунд;
  • открытие карточки Номенклатуры и поиск по строке — 2 секунды;
  • открытие документа (заказы, реализация) — 3-4 секунды;
  • создание нового заказа, новой реализации — 3 секунды;
  • выбор клиента в заказе (по строке) — 2 секунды, если открывать список контрагентов — 5-6 секунд;
  • открытие подбора номенклатуры в заказе — 3 секунды;
  • поиск при подборе номенклатуры — 3 секунды;
  • проведение заказа клиента — 6 секунд;
  • зачет оплаты в заказе, реализации — 15-40 секунд;
  • проведение реализации - 6-8 секунд;
  • проведение ПКО — 6-8 секунд.
РЕШЕНИЕ
День 1.
Собранная статистика показала большую длину очереди к дискам D и E. Были предприняты следующие действия:
  • базу заказчика мы оставили на первом массиве RAID 10 (mdf+ldf файлы), остальные базы начали переносить на второй массив RAID 10;
  • на SSD на диск F перенесли темпы сервера 1С.
Темпы сервера 1С пишутся под пользователем, от имени которого работает сервер 1С. В данном случае это был назначенный пользователь Windows.
Темпы пишутся в папку пользователя. Перенесли на диск F всю папку пользователя (инструкцию можно найти в интернете).
День 2.
Была выявлена проблема скорости запуска клиента 1С на терминале. Запуск происходил значительно медленнее, чем на сервере 1С. Чтобы продолжить оптимизацию, мы попросили пользователей не работать.

В течение дня успели сделать следующее:
  • завершили перенос баз между дисками D и E. База заказчика единолично стала занимать массив RAID 10;
  • на диск F (SSD RAID 1) перенесли файлы сервера 1С (каталог srvinfo) и файл подкачки ОС;
  • установили все обновления на операционную систему и MSSQL;
  • задействовали протокол Shared Memory для взаимодействия сервера 1С и MSSQL (протокол был задействован для всех баз);
  • заблокировали регламентные задания на копиях баз данных.
День 3.
Внесли в код конфигурации ERP изменения для сбора данных о скорости работы "узких мест" с использованием подсистемы "Оценка производительности". Также подключили ЦУП для сбора данных о скорости работы запросов.

День 4.
Изучили собранные "Оценкой производительности" логи.


На графиках:

  • по горизонтали — временные интервалы в секундах. Это скорость выполнения операции;
  • по вертикали — количество операций, попавших в интервал.

Отдельные операции выполняются довольно долго.











ЦУПом получены следующие данные за день:



Мы видим, что произошло 4 долгих запроса.


Сопоставляем пики с показателями производительности ОС.



Первый пик в этом интервале.


Второй пик в этом интервале. Как раз в 14:10 наблюдается рост средней длины очереди на диск с темпами.


Третий пик в этом интервале.


Предприняты следующие действия:
  • лог базы переложили на диск F (SSD);
  • провели анализ настроек работы процессора, администратору были направлены инструкции по оптимизации настроек с целью максимально полного использования процессора.
День 5.
Повторно собрали показатели производительности. Как видно, стало намного лучше.



Обнаружилась еще одна проблема. Каждый час, ровно в 00 минут терминал жутко тормозил. Анализ показал, что в этот момент наблюдалась активность одновременно всех клиентов на терминале. Причиной оказался включенный технологический журнал на терминале. В 00 минут происходило создание новых файлов журнала и удаление всех "старых" файлов из каталога сбора логов. Журнал на терминале отключили, и ситуация нормализовалась.

Для надежности базу заказчика перенесли на отдельный кластер 1С. Файл базы данных заказчика (mdf) также перенесли на диск SSD. Это позволило значительно увеличить отклик системы.
Напомним, SSD состоит из двух дисков, объединенных в RAID 1. Дополнительно надежность обеспечивается постоянными бэкапами журнала транзакций раз в 5 минут.


Существенно снизилась очередь к диску F. Сейчас на нем:
  • TempDB;
  • темпы 1С;
  • файлы сервера 1С (включая журнал регистрации);
  • файл подкачки;
  • база ERP.
Значительно выше была очередь и к диску RAID 10, на котором лежал лишь файл mdf.