Способы получения статистической информации об ожиданиях на блокировках в базе данных

Для контроля качества работы системы необходимо уметь получать статическую информацию разного вида. В этой статье мы узнаем о способах получить статистическую информацию об ожиданиях на блокировках. К вопросам данного вида можно отнести: «Происходят ли ожидания на блокировках при работе пользователей?», «Какое общее время система проводит в режиме ожидания блокировок?». Поскольку мы работает с 1С:Предприятие, в которой разработан свой механизм блокировок, то ответы на данные вопросы необходимо рассматривать с двух точек зрения: «Управляемые блокировки» и «Блокировки СУБД».

Управляемые блокировки

Технологический журнал

Наличие управляемых блокировок определяется режимом управления блокировками в свойствах конфигурации. Для того чтобы получить информацию об управляемых блокировках необходимо настроить технологический журнал на сбор событий TLOCK. Определить наличие ожиданий при конфликтах блокировок можно отобрав события TLOCK по не пустому значению поля WaitConnections. Для того чтобы получить общее время ожидания системы на блокировках, необходимо просуммировать их длительности за соответствующий период. При этом следует не забыть правильно интерпретировать результат: в технологическом журнале до версии 8.3 записывалось время в сотнях микросекунд, начиная с 8.3 – в микросекундах.

Ниже приведена визуализация данных технологического журнала смоделированных ожиданий на блокировках. Как видно по рисунку, за время анализа произошло 7 попыток установки блокировки, при которых имели место ожидания. Общее время ожидания системы на этих блокировках составило около 10 секунд (данные на рисунке представлены для платформы 8.3). Для самостоятельного моделирования и анализа ожиданий можно воспользоваться обработкой из статьи «Методика расследования конфликтов на управляемых блокировках 1С:Предприятие».

Визуализация ожиданий на блокировках из данных технологического журнала
Визуализация ожиданий на блокировках из данных технологического журнала

Центр управления производительностью (ЦУП)

Так же на интересующие нас вопросы можно ответить воспользовавшись «Центром Управления Производительностью» (ЦУП) из комплекта поставки «Корпоративный Инструментальный Пакет» (КИП). В данном инструменте нам будут полезны статистические показатели «Среднее время ожидания на блокировках 1С», «Суммарное время ожидания на блокировках 1С», «Максимальное время ожидания на блокировках 1С», «Количество текущих ожиданий на блокировках 1С».

Блокировки СУБД (SQL Server)

Монитор производительности

Настройка монитора производительности (более подробно рассмотрена в статье «Настройка системного монитора для контроля производительности Windows и MS SQL Server») по показателям SQL Server :

  1. Lock waits/sec — указывает на наличие ожиданий на блокировках.
  2. Lock wait time (ms) — сумма показателя за выбранный период времени будет соответствовать времени системы проведенное в режиме ожидания блокировок.

Динамические административные функции

Статистическую информацию о блокировках SQL Server можно получить с помощью динамической административной функции sys.dm_os_wait_stats — это агрегированное представление о случаях ожиданий на всех видах блокировок. При этом текущие ожидания на блокировках в представлении не учитываются. Данная статистика накапливается с момента последнего сброса счетчиков или с момента перезапуска сервера. По-большей части нас интересуют «обычные» виды блокировок типа LCK_M_, а также могут интересовать кратковременные блокировки LATCH_. О других видах блокировок можно прочесть на сайте MSDN.

Монитор активности SQL Server (Activity monitor)

В зависимости от версии SQL Server может представлять информацию разной степени полезности. В целом, монитор активности отображает сведения о процессах SQL Server и о том, как функционирование этих процессов влияет на текущий экземпляр SQL Server. За более подробной информацией стоит обратиться к документации.

Центр управления производительностью (ЦУП)

В данном инструменте нам на помощь приходят статистические показатели «Среднее время ожидания на блокировках СУБД», «Суммарное время ожидания на блокировках СУБД», «Максимальное время ожидания на блокировках СУБД», «Количество текущих ожиданий на блокировках СУБД».

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *