Разделы сайта
Выбор редакции:
- Комментарии (7) к “Гаджеты для рабочего стола”
- Зарядное устройство из адаптера ноутбуков
- Использование монитора производительности для определения узких мест аппаратных средств, на которых запущен SQL Server
- Как скачать Media Player Classic для моей операционной системы
- Курсовая работа: Этапы производства микропроцессоров Современные технологии создания процессоров
- Подключение сканера штрихкода с помощью атол программы
- Недостаточная мощность железа
- Диспут PayPal как способ защиты от мошенников и недобросовестных продавцов Как открыть спор в paypal
- Как перевести файл пдф в ворд для редактирования текста в режиме онлайн бесплатно: пошаговая инструкция
- Как вернуть старую версию Скайпа?
Реклама
26.12.2006 Кевин Клайн Какой вопрос меньше всего хотелось бы получить администратору баз данных? Вероятно, сообщение от пользователя об ухудшении работы приложения или вопрос о том, что случилось с базой данных. Приходится откладывать все дела и переходить в «аварийный режим», гадая, надолго ли это. Так как одной из основных обязанностей администратора баз данных является обеспечение качественного функционирования промышленных баз данных, остается только максимально быстро устранить неисправность. Времени на выяснение причины сбоя, как правило, нет. Больше никаких авралов - просто систематическое наблюдениеНо разве это единственное, что можно сделать? Существует возможность проводить упреждающий мониторинг производительности, простую процедуру управления, которая использует определение базовых параметров работы системы, получение эталонов и непрерывное наблюдение. В этой статье я расскажу о том, как применять упреждающий мониторинг и как создать бесплатную контрольную систему с использованием Windows System Monitor. Упреждающий мониторингУпреждающий мониторинг производительности - это несложная система, которая позволяет решить проблемы до того, как они станут критическими. Кто-то, вероятно, уже использует наблюдение за исключительными ситуациями, когда создаются автоматизированные процессы, которые замечают только отклонения от нормы, но не обеспечивают глубинной информацией и не предоставляют возможности предотвратить проблемы. Упреждающий мониторинг производительности, напротив, обеспечивает пользователя всевозможной информацией о рабочем окружении и приложениях, и краткосрочной, и долговременной. Снимаются показания счетчиков характеристик базы данных, устанавливаются эталонные метрики и поддерживается активный режим наблюдения. Как предполагает название, упреждающий мониторинг производительности требует действий. Нужно затратить немного времени на установку и некоторое время на осмысление функционирования баз данных и приложений. Чтобы упреждающий мониторинг производительности был эффективным, необходимо просматривать сообщения, так что есть возможность использовать обширные собранные данные. Базовые параметры, эталон, мониторДавайте начнем с определения нескольких терминов. Базовые параметры (baseline) - это набор параметров, отображающих поведение сервера и приложения в обычных условиях. Базовые параметры получены как средние по результатам нескольких замеров, выполненных в одинаковых условиях; они являются ориентирами для сравнения. Эталон (Benchmark) показывает производительность системы при определенном уровне загрузки сервера, что позволяет сравнить производительность промышленного сервера при таком уровне и определить показатели сервера, насколько они выше или ниже нормы (т.е. когда сервер работает плохо). Как и у базовых параметров, значения эталонов снимаются в контролируемом окружении, ключевые значения определяются в отношении предопределенных показателей. Если нужно посмотреть, как ведет себя сервер и приложение на нескольких уровнях или типах загрузки, то обычно получают несколько эталонных значений (по отношению к базовым параметрам) Мониторинг (Monitoring) - это плановое наблюдение в режиме реального времени за сервером на предопределенных условиях (совокупностях условий, определенных для дальнейшего исследования или предупреждений). Например, если потребуется узнать, сколько времени занимает удачное выполнение важного бизнес-приложения, сколько времени занимает резервное копирование или когда определенные значения производительности будут достигнуты, то за этими конкретными событиями ведется наблюдение. Теперь займемся упреждающим мониторингом. Можно использовать продукты третьих фирм или бесплатное решение, которое задействует System Monitor. Решения третьих фирм могут упростить процесс наладки упреждающего мониторинга и иметь функции, отличные от тех, которые может обеспечить бесплатное встроенное решение. Но прежде чем начать, я покажу, как приступить к выполнению упреждающего мониторинга при помощи System Monitor. Шаг 1: Определить базовые параметры производительности.На первом шаге обеспечения режима упреждающего мониторинга устанавливается совокупность основных параметров работы сервера базы данных. Эта совокупность указывает на производительность сервера в нормальных условиях, помогает документировать и понять все значимые фоновые процессы, также помогает обозначить ситуации, "не требующие вмешательства", чтобы в дальнейшем не обращать на них внимания. Другими словами, администраторы баз данных могут определить варианты игнорирования сообщений системы, так как иначе формируется большое количество ложных извещений. Для того чтобы наглядно показать качество функционирования, лучшие базовые параметры используют немного графиков (в идеале один), чтобы с первого взгляда можно было увидеть, как работает сервер. Когда будут определены базовые параметры, нужно сделать следующее. Во-первых, выберите вариант для сохранения данных по производительности в системном журнале или их отображения в реальном времени. Идеально иметь обе возможности: журналы регистрации позволяют вернуться к показаниям в любой момент времени, чтобы проанализировать, какой была производительность, когда непосредственное наблюдение за системой не велось. Мониторинг в реальном времени не занимает рабочее пространство на диске и ресурсы сервера, но требует уделить системе 100 процентов внимания. Во-вторых, нужно определить интервал, через который будет вестись наблюдение, учитывая затраты в производительности для сбора данных и операции ввода-вывода данных и оценить затраты на требуемое пространство. Чем больше интервал, тем выше вероятность, что интересующие данные по производительности не будут получены. И, наконец, выберите локальный или дистанционный мониторинг. Локальный мониторинг, при котором процесс наблюдения использует контролируемый сервер, добавляет непроизводительные издержки на процессор и диск сервера. Дистанционный мониторинг, который использует отдельный сервер, может избавить от подобных проблем, однако это сильно увеличивает рабочую нагрузку на сеть. В перечислены метрики System Monitor или счетчики, которые рекомендуется использовать для определения базовых параметров. Я не могу сказать, какое значение “правильное” в контексте отдельно взятого приложения, так как оно меняется от системы к системе. Используйте среднее значение различных базовых параметров для установки обычной стандартной (по базовым параметрам) производительности и обозначьте, что этот вариант и является правильным для эксплуатируемой системы Определение базовых параметров при помощи System MonitorТеперь для целей сбора базовых параметров вызовем System Monitor. Откроем Control Panel, Administrative Tools, Performance. Дважды щелкнем на Performance Logs and Alerts на левой панели. Нажмем правую кнопку на Counter Logs и укажем New Log Settings. Введите имя для графика, затем нажмите OK. В диалоговом окне Select Counters выберите первый счетчик, затем нажмите Add. Повторяйте эти операции до тех пор, пока все счетчики не будут добавлены, затем нажмите Close. Для начала попробуйте по умолчанию 15-секундный интервал. Или выберите другой интервал, нажав Properties (либо используйте клавишную комбинацию быстрого вызова Ctrl + Q), а затем введите значение под обозначением Sample automatically every: _ seconds. Более длинные интервалы занимают меньше места, однако они обеспечивают менее подробные данные. Выберите таблицу Log Files и определите место, где будут храниться данные. Есть возможность просмотреть данные позже, используя представление View Log File Data. System Monitor будет выглядеть так, как на экране 1, когда он собирает данные базовых параметров производительности. Видно, что при одновременном отслеживании множества счетчиков можно собрать очень много данных, так что следует внимательно выбирать счетчики для основной линии. Шаг 2: Установка эталонных значенийПосле того как установлены базовые параметры производительности сервера, можно приступать к установке эталонных значений, что облегчает понимание производительности сервера при работе в нескольких заранее установленных ситуациях. Для эталонов используется тот же режим мониторинга, что и для определения базовых параметров. Можно использовать свое решение или один из распространенных промышленных средств, таких как TPC-C или SAP, но лучшие результаты вычисления эталонных значений получаются при разработке обычных индивидуальных сценариев, которые настроены на использование определенного сервера базы данных и его приложений. Можно создать собственный сценарий, используя набор сценариев T-SQL, утилиты osql либо Query Analyzer, SQL Profiler и System Monitor. Разработка сценариев нагрузочных тестов в T-SQL обычно занимает несколько дней. Еще больше времени может потребоваться на сбор данных выполнения нагрузочных тестов и анализ полученных данных. После определения базовых параметров производительности сервера при заранее заданных нагрузках можно будет узнать, чего можно ожидать от системы. Используйте данные, собранные при получении эталонных значений для формирования основы планового наблюдения. Например, выяснилось, что сервер способен обеспечить до 249 транзакций в секунду, прежде чем его работа начнет замедляться. В этом случае можно установить уведомление с низким приоритетом, когда сервер достигнет загрузки около 200 TPS и уведомление с высоким приоритетом, когда сервер достигнет 235 TPS. Такой способ позволит администратору узнать о возможных проблемах с сервером и принять необходимые меры до того, как пользователи что-нибудь заметят. И никаких критических ситуаций. Теперь это возможно. Шаг 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) или другие средства. Я рекомендую установить предупреждения, по крайней мере, для следующих ситуаций:
Можно посылать сигналы тревоги для уведомления администраторов посредством электронной почты, пейджера или сети. Можно установить автоматизированные предупреждения для следующих источников сообщений:
Наконец, необходимо удостовериться, что приложения собственной разработки правильно регистрируют ошибки и, кроме того, реагируют на сообщения об ошибках от других разработанных приложений. Упреждающий мониторинг производительности SQL Server означает определение базовых параметров производительности, как для сервера, так и для приложения; установку эталонных значений, которые моделируют функционирование сервера в соответствии с заранее заданным используемым сценарием, и выполнение планового мониторинга, в идеале инициирующего предупреждения, когда обнаруживается проблема. Независимо от того, используются бесплатные или встроенные инструменты или выбраны решения независимых фирм, наличие контроля гарантирует, что вы получите в нужный момент необходимую информацию о работе своих приложений на SQL Server. Таблица 1. Объекты и счетчики System Monitor для определения базовых параметров
Начиная с версии 2008 в сборку SQL Server был добавлен монитор производительности системы - Performance Data Collector (PDC). Новый компонент Management Studio, призванный облегчить мониторинг и настройку производительности экземпляров SQL Server"а конечным пользователям. Компоненты, устанавливаемые по умолчанию, называют набором системы сбора данных, а именно:
Преимущества:
Ограничения:
Этапы подготовки:
Настройка производительности Data Collector Во-первых, создадим хранилище данных управления Теперь, давайте настроим хранилище данных управления. Нажимаем "Next" на экране приветствия Указываем имя базы данных и место расположения Присваиваем пользователю роль mdw_admin. Проверяем конфигурацию. Если все указано правильно, нажимаем "Finish" и переходим к процессу конфигурирования. Идет процесс конфигурации... Конфигурация выполнена. Теперь, после выполнения на сервере запросов к базе данных можно просмотреть отчеты этих выполнений. Для просмотра отчетов разверните вкладку "Management" -> "Data Collection". На скриншоте ниже видно, какие данные о производительности сохраняются в локальном кэше до загрузки данных. Здесь же можно увидеть сводный отчет об использовании дискового пространства. Как вы можете видеть, использование дискового пространства в базе данных показано на рисунке ниже. История статистики запросов. Этот отчет отображает ресурсоемкие запросы по категориям. Вы можете нажать на любой запрос и получить подробную информацию по данному запросу. Внизу расположена подробная информация по выбранному запросу. | Super User | SQL Server | https://сайт/media/system/images/new.png | Начиная с версии 2008 в сборку SQL Server был добавлен монит | журнальный ключ dr.web, настройка windows, защита от записиЛюбому администратору баз данных, наверняка, приходилось сталкиваться с тем, что все работает медленно, или не работает вообще. Первое, что при этом нужно выяснить - это что вообще происходит на SQL Server в данный момент. Казалось, бы в арсенале администратора множество инструментов: Activity Monitor, Dynamic Management Views (dmv), хранимые процедуры sp_who и sp_who2, оставшиеся в наследство еще со времен SQL Server 7 и SQL Server 2000. Но, давайте разберемся с мониторингом SQL Server. Средства мониторингаActivity MonitorЗанимается мониторингом текущей активности. Запускаете тяжелый бухгалтерский отчет и смотрите что покажет Activity Monitor. И от SQL Server Denali (2012) CTP 3. sp_who и sp_who2На скриншоте результат выполнения sp_who (сверху) и sp_who2 (снизу), выполненных во время построения все того же отчета: DMVНачиная с SQL Server 2005, мы получили новую возможность получать информацию о состоянии сервера - Dynamic Management Views . MSDN говорит так: «Динамические административные представления и функции возвращают данные о состоянии сервера, которые могут использоваться для контроля исправности экземпляра сервера, диагностики проблем и настройки производительности.». sp_WhoIsActiveAdam Machanic (SQL Server MVP и MCITP) разработал и постоянно дорабатывает хранимую процедуру sp_WhoIsActive, которая опирается как раз на эти самые DMV и очень легка в освоении. Скачать последнюю версию sp_WhoIsActive можно . У самого Адама есть цикл статей, посвященных sp_WhoIsActive, состоящий аж из 30 (тридцати!) штук, почитать его можно , а я же, постараюсь заинтересовать вас в прочтении этого материала:).
Остальные столбцы в стандартном выводе
sp_WhoIsActive малоинтересны, и описывать их я не буду - их назначение, я думаю, понятно всем (host_name, database_name, program_name, start_time, login_time, request_id, collection_time).
Это программный продукт компании Sybase, работающий совместно с SQL Server и выдающий в графической форме разнообразную информацию о производительности сервера. Эти сведения исключительно полезны при анализе причин снижения его производительности. версии 11.0.1 имеет ряд новых важных возможностей, существенно отличающих новую версию от всех предыдущих. 11.0.1 может работать с любой версией SQL Server, начиная с 4.9.2 и кончая System 11. Однако некоторые наиболее интересные виды информации о характере использования объектов баз данных и взаимодействии сервера с сетью выдаются только при мониторинге SQL Server System 10 и System 11. Естественно, данные о работе именованных кэш-буферов выдаются только при контроле производительности SQL Server System 11. Для совместимости с предыдущими версиями 11.0.1 также поддерживает режим выдачи статистической информации о производительности сервера в файлы, которые можно использовать для последующего сравнения и анализа. Эта возможность оказывается очень полезной на практике, но ее применение усложняет процесс установки. состоит из двух компонентов: серверного модуля, работающего на одной машине с SQL Server для обеспечения возможности доступа к разделяемой области памяти сервера, и, клиентского модуля, который способен работать на любом компьютере. Главной задачей клиентского модуля является чтение информации, накопленной серверным модулем, и ее представление пользователю в графической форме. При запуске необходимо отменить проверку памяти сервера, выполняемую командой dbcc memusage, поскольку эта команда существенно замедляет работу сервера. Для этого при запуске sqlmon (клиентского модуля) необходимо указать параметр – nomem. Устанавливаемая по умолчанию конфигурация обеспечивает одновременное подключение до пяти клиентских модулей к одному серверному модулю. Другими словами, к одному серверному модулю может подключиться либо пять клиентских модулей с одним окном на каждом клиенте, либо один клиент с пятью открытыми окнами. Максимальное количество одновременно открытых окон клиентов устанавливается при запуске серверного модуля. Так, для поддержки 20 окон в командном файле запуска серверного модуля необходимо указать параметр п2 0. При этом потребуется изменить адрес начала разделяемой области памяти сервера с помощью команды buildmaster и некоторых других действий. Эти действия ни в коем случае нельзя производить во время работы SQL Server. (Подробно о процессе расширения количества одновременно поддерживаемых клиентов см. в руководстве по серверному модулю Server Supplement.) имеет некоторые недостатки. Например, столбчатая диаграмма, показывающая количество выполняемых операций ввода-вывода и другие характеристики работы серверных устройств, способна сообщать данные одновременно только по ограниченному числу устройств. Это неудобно при мониторинге крупного сервера с большим количеством серверных устройств. Кроме того, пользователь не может выбирать устройства, информация по которым будет включена в диаграмму, а также переключаться между различными наборами устройств. Текстовая таблица, появляющаяся на экране одновременно с диаграммой, содержит перечень всех серверных устройств, но включает в себя лишь суммарное число операций ввода-вывода по каждому из них. Это особенно затрудняет работу с большим сервером, на котором для повышения его производительности создано много серверных устройств, поддерживающих пользовательские сегменты баз данных. В этом случае анализ работы всех имеющихся сегментов оказывается невозможным. также не позволяет долгое время выдавать на экран динамику изменения показателей производительности. Он способен представить на экране данные за 60 последовательных интервалов измерения производительности. В зависимости от выбранной продолжительности каждого интервала такая статистика может охватить довольно большой промежуток времени. Однако этот прием не дает возможности сопоставить текущие данные с показателями месячной или годовой давности. Разумеется, изображения окон программы можно выдать на принтер, но тогда придется хранить наборы файлов или горы распечаток для оценки будущей производительности сервера. На практике администратору сервера часто приходится повторно просматривать данные, полученные в различные периоды делового цикла компании, а также сопоставлять информацию по одинаковым периодам последовательных деловых циклов, чтобы получить представление о реальной производительности сервера. Поскольку запуск приводит к некоторому замедлению работы сервера, перед началом измерений необходимо определить величину этого замедления для конкретной аппаратной и программной платформы. Хороший способ измерения - выполнение стандартного набора тестовых транзакций. Его можно применять как при наличии, так и при отсутствии на серверной машине. Даже если клиентских модулей нет, серверный модуль программы продолжает свою работу, и его необходимо остановить отдельной командой. позволяет выдавать на экран несколько, различных графических окон, каждое из которых содержит информацию по определенному аспекту функционирования сервера. Главное окно (Main Window)
Кэш-буферы (Cache)
Кэш-буфер данных, только для SQL Server System 11 (Data Cach)
Дисковый ввод/вывод (Device I/O)
Работа с сетью, только для SQL Server System 10 и 11 (Network Activity)
Блокировка доступа к объектам, только для SQL Server System 10 и 11 (Object Lock Status)
Ввод-вывод страниц объектов, только для SQL Server System 10 и 11 (Object Page I/O)
Сводка данных о производительности (Performance Summar)
Динамика показателей производительности (Performance Trend)
Активность серверных процессов (Process Activit)
Подробные данные о процессе (Process Detail)
Список процессов (Process List)
Использование блокировок (Process Lock Activity)
Использование хранимых процедур (Stored Procedure Activity)
Обработка транзакций (Transaction Activity)
Любому администратору баз данных, наверняка, приходилось сталкиваться с тем, что все работает медленно, или не работает вообще. Первое, что при этом нужно выяснить - это что вообще происходит на SQL Server в данный момент. Казалось, бы в арсенале администратора столько всяких полезных штук: гуевый Activity Monitor, куча Dynamic Management Views (dmv), хранимые процедуры sp_who и sp_who2, оставшиеся в наследство еще со времен SQL Server 7 и SQL Server 2000. Средства мониторингаActivity MonitorКазалось бы, отличная штука, занимается как раз тем чем надо - мониторит активность. Запускаю тяжелый бухгалтерский отчет и смотрю что мне покажет Activity Monitor. и от SQL Server Denali (2012) CTP 3. sp_who и sp_who2На скриншоте результат выполнения sp_who (сверху) и sp_who2 (снизу), выполненных во время построения все того же злосчастного отчета: DMVНачиная с SQL Server 2005, мы получили новую возможность получать информацию о состоянии сервера - Dynamic Management Views . MSDN говорит так: "Динамические административные представления и функции возвращают данные о состоянии сервера, которые могут использоваться для контроля исправности экземпляра сервера, диагностики проблем и настройки производительности.". sp_WhoIsActiveAdam Machanic (SQL Server MVP и MCITP) разработал и постоянно дорабатывает хранимую процедуру sp_WhoIsActive, которая опирается как раз на эти самые DMV и чертовски легка в использовании. Скачать последнюю версию sp_WhoIsActive можно . У самого Адама есть цикл статей, посвященных sp_WhoIsActive, состоящий аж из 30 (тридцати!) штук, почитать его можно , а я же, постараюсь заинтересовать вас в прочтении этого материала:).
Остальные столбцы в стандартном выводе sp_WhoIsActive малоинтересны, и описывать их я не буду - их назначение, я думаю, понятно всем (host_name, database_name, program_name, start_time, login_time, request_id, collection_time). И чО? Это все?Нет, это еще не все. Еще я расскажу о том с какими (наиболее интересными и полезными, с моей точки зрения) параметрами можно вызывать sp_WhoIsActive и что из этого получится.
Вот теперь всеВ итоге, мы имеем еще один чрезвычайно удобный и гибкий инструмент для отслеживания текущей активности на SQL Server. Для нормальной его работы вполне достаточно разрешения VIEW SERVER STATE и прав на обращение к dmv. |
Читайте: |
---|
Новое
- Зарядное устройство из адаптера ноутбуков
- Использование монитора производительности для определения узких мест аппаратных средств, на которых запущен SQL Server
- Как скачать Media Player Classic для моей операционной системы
- Курсовая работа: Этапы производства микропроцессоров Современные технологии создания процессоров
- Подключение сканера штрихкода с помощью атол программы
- Недостаточная мощность железа
- Диспут PayPal как способ защиты от мошенников и недобросовестных продавцов Как открыть спор в paypal
- Как перевести файл пдф в ворд для редактирования текста в режиме онлайн бесплатно: пошаговая инструкция
- Как вернуть старую версию Скайпа?
- Загрузка системы с флешки без установки