Счётчики производительности, позволяющие идентифицировать узкие места дисковой подсистемы SQL ServerИсточник: mvpitcommunityru Alexander Gladchenko
Описание проблемы Известны несколько статей об обнаружении проблем ввода-вывода, связанных с SQL Server. Существуют разные методы поиска "узких мест" ввода-вывода, мы же сконцентрируемся тут на вопросе: Какие счётчики производительности необходимы для того, чтобы быстро понять, являются ли диски "узким местом"? Решение В сети можно найти много разной информации о том, как определить возможные узкие места ввода-вывода. Доступная информация настолько обширна, что в ней легко потеряться. Быстро определить является ли узким местом дисковая подсистема достаточно трудная задача, решение которой главным образом зависит от типа хранилища, которое может быть: DAS, SAN, NAS, iSCISI, виртуальный диск и т.п. В большинстве организаций диски доступные для SQL Server - это "чёрный ящик", что делает задачу определения реального размещения данных достаточно тяжёлой. Avg. Disk sec/Read - показывает среднее время в секундах, потраченное на чтение данных с диска. Эти два счётчика измеряют время ожидания непосредственно в той программной надстройке, где диски устройства хранения данных становятся доступны операционной системе. Они позволяют точно измерить, сколько времени диски и аппаратное окружение потратили на обслуживание запросов ввода-вывода независимо от того, какие были задействованы аппаратные средства.
Используя эти счётчики при исследовании загрузки нескольких дисков, можно выяснить то, как обстоят дела с каждым отдельным диском, таким образом, можно понять, является ли узким местом какой-либо из исследуемых дисков. Подобно правилу буравчика, если мы имеем дело с OLTP системой, среднее значение должно быть меньше 15 ms со всплесками до 25 ms. Если у вас эти значения ниже указанного порога, тогда ваш ввод-вывод не испытывает затруднений, и никакой дополнительный анализ узких мест дисков больше не потребуется. Это эмпирическое правило может использоваться для любого типа системы. Чем меньше времени требуется для чтения или записи данных, тем быстрее будет ваша система. Картинка ниже показывает Avg. Disk sec/Read для диска C:. Можно видеть, что среднее значение порядка 0.130, что составляет 130 ms, и максимальное значение 1.089, что составляет 1089 ms. Таким образом, у исследуемой системы ввод-вывод является узким местом, что видно из полученных значений счётчиков. Если бы интерпретировалось значение Avg. Disk sec/Write, оно привело бы к аналогичным выводам. Если значения представленных выше счётчиков превышают указанные оптимальные пороговые значения, придётся заняться более глубоким анализом, измерив для этого данные следующих счётчиков производительности: Disk Transfers/sec - демонстрирует нагрузку операций чтения и записи на диск. Заключение Целью этой статьи была рекомендация счётчиков производительности, которые годятся для экспресс-анализа того, является ли дисковая подсистема узким местом в работе компьютера. Если вы наблюдаете превышающие пороговые значения этих счётчиков, понадобится потратить дополнительное время на то, чтобы "раскопать" источник проблемы. По материалам статьи Маттео Лорини (Matteo Lorini): "Perfmon Counters to Identify SQL Server Disk Bottlenecks". |