Академия Специальных Курсов по Компьютерным Технологиям
    Главная страница Послать письмо
 
AskIt.ru  
   
   
   
   
   
   
 
 
  Главная / Заказные курсы / Microsoft SQL Server 2005 для администраторов
 
 

Получить учебные материалы по этому курсу


<-- Назад Читать дальше -->

11.4.4. Нагрузочное тестирование

Стрессовое тестирование (stress testing) SQL Server 2005, Support Escalation Services Support Utilities, RML (Replay Markup Language), Ostress, Read80Trace, ORCA, SQLIOStress, SQL Hammer, DBStressUtility

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

В такой ситуации на помощь могут прийти средства нагрузочного тестирования (stress testing utility). Такие утилиты специально предназначены для того, чтобы имитировать работу большой группы пользователей.

Microsoft рекомендует для нагрузочного тестирования SQL Server использовать свои же утилиты. Главный набор таких утилит называется Microsoft SQL Server Support Escalation Services Support Utilities. Его можно бесплатно скачать с сайта Microsoft. Другое название этого набора RML (от Replay Markup Language XML-совместимый язык, который используется в этих утилитах). Это название используется чаще, т. к. утилиты скачиваются с сайта Microsoft в виде файла rml.exe и устанавливаются в каталог rml.

В наборе RML есть три главные утилиты: Ostress, Read80Trace и ORCA.

Ostress — главное средство для выполнения нагрузочного тестирования. Это консольная утилита с большим количеством параметров командной строки. Например, если вы хотите запустить на выполнение на локальном сервере файл C:\MyApp.sql с командами SQL от имени одновременно 50 пользователей, соответствующая команда может выглядеть так:

ostress -E -dNorthwind -i"C:\MyApp.sql" -n50

Параметр -E означает, что вы подключаетесь при помощи логина Windows, при помощи параметра -d передается имя базы данных, параметр -i определяет имя файла с командами SQL (его можно создать автоматически, например, средствами профилировщика), параметр -n определяет, сколько потоков (т. е. подключений пользователей) запустится одновременно. Будьте внимательны: утилита чувствительна к регистру параметров!

Утилита Ostress может работать в двух режимах: нагрузочном режиме (stress mode, этот режим используется по умолчанию) и в режиме повторного выполнения (replay mode). Первый режим предназначен главным образом для оценки производительности сервера при определенной нагрузке: в произвольной последовательности выполняются команды с использованием указанного вами количества потоков (подключений пользователей). Второй режим предназначен для точного повторного выполнения тех команд, которые были запротоколированы средствами профилировщика. Однако утилите Ostress нельзя напрямую передать файлы, созданные профилировщиком. Вначале их нужно перевести в специальный XML-совместимый формат RML. Эта операция производится при помощи утилиты Read80Trace. Кроме того, для взаимодействия со службой DTC (Distributed Transaction Coordinator — координатор распределенных транзакций) и отслеживания идентификаторов процессов (SPID) на SQL Server эта утилита использует специальный программный компонент ORCA (Ostress Replay Control Agent — управляющий агент повторного выполнения утилиты Ostress).

К сожалению, при использовании Ostress смущают два момента. Во-первых, эта утилита может работать только по ODBC. Второй момент связан с тем, что выполнение одних и тех же команд при использовании этой утилиты занимает во много раз больше времени, чем при работе в Query Analyzer или в других аналогичных средствах. При отключении вывода на экран (параметр -q) и при работе с единственным потоком выполнение команд все равно замедляется в разы, и это не только из-за применения драйверов ODBC. Поэтому использовать Ostress для оценки того, с какой скоростью будут выполняться запросы пользователей при определенном их количестве, затруднительно.

Специально для нагрузочного тестирования дисковой подсистемы предназначена утилита SQLIOStress. Ее также можно бесплатно скачать с сайта Microsoft.

Еще одно программное средство от Microsoft, которое можно использовать для нагрузочного тестирования, называется SQL Hammer. Его можно найти на компакт-диске Resource Kit для SQL Server 2000. Фактически эта программа представляет собой шаблон приложения на языке Visual Basic, который можно изменять для своих целей.

Однако, с точки зрения автора, самым удобным средством для проведения нагрузочного тестирования является бесплатная программа DBStressUtility. Эта программа использует средства для работы с потоками .NET, и ее можно загрузить из Интернета вместе с исходным кодом (он совсем несложный, поэтому при желании его вполне можно доработать самостоятельно). Интерфейс этой программы представлен на рис. 11.5.

Рис. 11.5. Интерфейс DBStressUtility

Программа настолько проста, что каких-либо подробных объяснений не требуется. Отметим только один момент, с которым автор столкнулся на практике. Если сохранять результаты трассировки из окна SQL Server Profiler в файл скрипта с расширением sql, то профилировщик автоматически добавляет между командами в скрипте ключевое слово GO. DBStressUtility, встретив такое слово, прекращает чтение файла команд и выполняет только те команды, которые были до первого появления команды GO. Точно также DBStressUtility относится и к пустым строкам. Поэтому перед передачей этой программе файла команд необходимо очистить его от команд GO средствами поиска и замены любого текстового редактора. Другой вариант (более правильный) — запротоколировать информацию трассировки в таблицу SQL Server, а затем любыми средствами (пакет DTS/SSIS, bcp, Excel) экспортировать эту таблицу в текстовый файл. Из таблицы, создаваемой профилировщиком, вам нужен будет только столбец TextData.

 

   
   
   
   
   
   
   
   
   
   
 
<-- Назад Читать дальше -->

Получить учебные материалы по этому курсу


 
© 2004-2016, Академия Специальных Курсов
по Информационным Технологиям
.
Все права защищены.

Разработка NevaStudio
г. Санкт-Петербург, Васильевский остров,
20-я линия, д. 7
Офис 101, 2-й этаж
Телефон: 8(812)922-47-60
E-mail: info@askit.ru