Мониторинг SQL Server - Шаг 3: Плановый мониторинг

ОГЛАВЛЕНИЕ

Шаг 3: Плановый мониторинг

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

Можно создать недорогое средство для наблюдения за SQL Server, используя сочетание SQL Server Agent и System Monitor. SQL Server Agent позволяет определить, какое событие вывело ошибку на монитор, установить, кто получает извещения о событиях и автоматически послать извещение, когда появляется событие с ошибкой.

Установка SQL Server Agent может быть продолжительной по времени и сложной, поэтому нужно будет обратиться к разделу описания Alerts в SQL Server Books Online (BOL) . SQL Server Agent обычно осуществляет текущий контроль за сообщениями об ошибках работы сервера базы данных и не контролирует выполнение.

Для контроля производительности сервера используется System Monitor для наблюдения за текущими счетчиками (установите частоту опроса с точностью до 15 минут).

Memory-Pages/sec

Network Interface-Bytes total/sec

Physical Disk-Disk Transfers/sec

Processor-% Processor Time

SQLServer:Access Methods-Full Scans/sec

SQLServer:Buffer Manager-Buffer Cache Hit Ratio

SQLServer:Databases Application Database-Transactions/sec

SQLServer:General Statistics-User onnections

SQLServer:Latches-Average Latch Wait Time

SQLServer:Locks-Average Wait Time

SQLServer:Locks-Lock Timeouts/sec

SQLServer:Locks-Number of Deadlocks/sec

SQLServer:Memory Manager-Memory Grants Pending

Установите значение для каждого счетчика между значениями базовых параметров и эталонными значениями, которые показало тестирование. Например, можно установить уведомление, когда счетчик достигает 75 процентов значения самой высокой нагрузки, и предостерегающее сообщение, когда он проходит 90 процентов.

Для выполнения предупреждений можно использовать бесплатные инструменты, такие как SQL Server Alerts & Notifications, System Monitor либо приобрести Microsoft Operations Manager (MOM) или другие средства. Я рекомендую установить предупреждения, по крайней мере, для следующих ситуаций:

  • ошибки, влияющие на эксплуатацию, особенно ошибки с показателем важности от 19 до 25
  • блокировки
  • использование процессора
  • использование диска
  • сканирования (SQLServer:Access Methods)

Можно посылать сигналы тревоги для уведомления администраторов посредством электронной почты, пейджера или сети. Можно установить автоматизированные предупреждения для следующих источников сообщений:

  • журнал SQL Server
  • журнал SQL Agent
  • журнал приложений Windows, Security, и System
  • журнал исполнения заданий SQL Server

Наконец, необходимо удостовериться, что приложения собственной разработки правильно регистрируют ошибки и, кроме того, реагируют на сообщения об ошибках от других разработанных приложений.

Упреждающий мониторинг производительности SQL Server означает определение базовых параметров производительности, как для сервера, так и для приложения; установку эталонных значений, которые моделируют функционирование сервера в соответствии с заранее заданным используемым сценарием, и выполнение планового мониторинга, в идеале инициирующего предупреждения, когда обнаруживается проблема. Независимо от того, используются бесплатные или встроенные инструменты или выбраны решения независимых фирм, наличие контроля гарантирует, что вы получите в нужный момент необходимую информацию о работе своих приложений на SQL Server.

Таблица 1. Объекты и счетчики System Monitor для определения базовых параметров

Объект и счетчик  Описание 
Memory-Pages/sec Число страниц чтения или записи на диск в секунду. Этот счетчик - первичный индикатор типов ошибок, вызванных системными задержками или проблемами с производительностью
Network Interface-Bytes total/sec Число байтов, проходящих по сетевому интерфейсу в секунду. Когда показатель этого счетчика снижается или имеет такую тенденцию, это указывает на то, что проблемы с сетью могут оказывать влияние на приложение
PhysicalDisk-Disk Transfers/sec Оценка дисковых операций чтения/записи. Установите счетчик для каждого физического диска на сервере
Processor-% Processor Time Процентное соотношение времени, которое процессор тратит выполнение рабочего потока. Этот счетчик работает как первичный индикатор деятельности процессора. Если все процессоры, работающие на SQL Server, показывают стопроцентное использование, запросы конечного пользователя, скорее всего игнорируются
SQLServer:Access Methods-Full Scans/sec Число неограниченных заполненных таблиц или индексных сканирований в секунду. Понижение значений этого счетчика к лучшему, потому что просмотры часто вызывают нехватку ресурсов проблемы кеширования
SQLServer:Buffer Manager-Buffer Cache Hit Ratio Процентное отношение страниц, которые не требовали чтения от диска. Чем выше их число, тем меньше производится ввода/вывода на диск. В хорошо настроенной системе это значение должно быть 80 или выше.
SQLServer:Databases-Log Growths На сколько, для конкретной базы данных, вырос файл транзакций. В хорошо настроенной системе значение этого счетчика должно быть низким, вероятно, меньше чем один в несколько дней
SQLServer:Databases Application Database-Percent Log Used Процентное отношение свободного места в журнальном файле. Этот счетчик планово варьирует, но не должен достигать 100
SQLServer:Databases Application Database-Transactions/sec Число транзакций, подтвержденных в базе данных. Этот счетчик временами опускается в эталонах. Наблюдайте за тем, когда транзакции начинают выстраиваться в очередь, это указывает на то, что дисковый ввод/вывод может быть медленным
SQLServer:Latches-Average Latch Wait Time Среднее время задержки запроса перед заполнением. Это значение счетчика может быть высоким, когда сервер сталкивается с соперничеством за ресурсы, особенно за память или за ввод/вывод
SQLServer:Locks-Average Wait Time, Lock Waits/sec, Number of Deadlocks/sec Временные блокировки удерживают ресурсы SQL Server. Наблюдайте за восходящей тенденцией этих связанных с блокировкой счетчиков, что указывает на возможную проблему с производительностью
SQLServer:General Statistics-User Connections Число пользовательских подключений к серверу базы данных. Проверяйте любые заметные сдвиги в значении этого счетчика. Они могут указывать на сетевые проблемы и свидетельствовать о нагрузках и замедлении
SQLServer:Memory Manager-Memory Grants Pending Текущее число процессов, ожидающих предоставления пространства памяти. Высокое или растущее значение может указывать на недостаточный объем памяти
SQLServer:User Settable-Query (a tracer query) Специализированный счетчик, также известный как указатель запросов. Этот счетчик - созданный пользователем запрос, который указывает общую скорость или эффективность системы. Чтобы устанавливать это значение, приложение вызывает sp_user_counter1 и возвращает число