Проблема с производительностью Microsoft SQL Server 2012 и SQL Server Integration Services

Максим Яшников




В рамках работ на проекте поддержки интернет-магазина была решена проблема с производительностью MS SQL Server 2012.

Исходная конфигурация:

Имелся сервер баз данных интернет-магазина, на котором располагался MS SQL Server 2012. Версия СУБД: Microsoft SQL Server 2012 (SP1) - 11.0.3128.0 (X64). На сервере также были установлена служба Integration Services, для обеспечения интеграции баз данных магазина и Navision. Службой SSIS выполнялись интеграционные пакеты, с разной периодичностью (от 10 минут до нескольких часов).

Симптомы:

При общей низкой нагрузке на сервер баз данных (небольшое количество трафика интернет-магазина), объем свободной оперативной памяти на сервере баз данных был крайне низким - приблизительно 2 Гб из 16 Гб на сервере. Соответственно, производительность магазина была крайне низкой. При перезапуске сервера количество доступной оперативной памяти становилось нормальным для текущей загрузки интернет-магазина.

Предварительный диагноз - утечка памяти, возможно, проблема в коде интеграционных пакетов (для некоторых манипуляций с данными использовался программный код на C#). Поскольку интеграционных пакетов было достаточно много, было решено провести мониторинг свободной оперативной памяти сервера после его перезагрузки, чтобы отследить характер утечки памяти в динамике. Результаты мониторинга оказались следующими:

DB Memory Day - problem.png

Стало понятно, что равно в полночь сервер-карета превращается в сервер-тыкву. Но интеграционные пакеты, разработанные для интеграции баз данных интернет-магазина с Navision, в это время не выполнялись. Было обнаружено служебное задание SQL Server, которое выполнялось каждую ночь в это время - SSIS Server Maintenance Job. Это было единственное задание, которое выполнялось в полночь.

Проблема с производительностью была описана в одной из статей Microsoft и касалась именно этого задания:
https://support.microsoft.com/en-us/help/2829948/fix-slow-performance-when-you-run-the-ssis-server-m...

Для исправления ситуации необходимо было установить исправление:
https://support.microsoft.com/en-us/help/2833645/cumulative-update-package-4-for-sql-server-2012-sp1


После установки обновления был произведен повторный мониторинг доступной оперативной памяти сервера, который показал, что проблема с производительностью исчезла:

DB Memory Day - fix.png


Поделиться
Проблема настройки COM-объектов на 64-разрядных операционных системах
Размещено Максим Яшников

Ведущий разработчик

Возврат к списку