Прочитал
сегодня интересный рецепт, как быстро определить, кто даёт слабину, процессор
или дисковая подсистема. Ну и заодно в очередной раз убедился в полезности
книжки:
Проектированиеи оптимизация доступа к базам данных Microsoft SQL Server 2005. Учебный курсMicrosoft (+ CD-ROM)
Авторы этого учебного курса
считают, что соотношение суммарных ожиданий процессоров и ввода-вывода можно
использовать для того, чтобы определить, кто из них из-за кого простаивает.
Впрочем, вот выдержка из этой замечательной книги, со страницы 400:
Одной из самых
сложных задач, с которыми сталкиваются разработчики баз данных, является
прогнозирование поведения приложения в реальных условиях. Чтобы иметь точное
представление о характеристиках производительности приложения, разработчик
должен знать конкретную причину любого состояния ожидания, которое возникает во
время выполнения приложения. На самом общем уровне состояния ожидания можно
разбить на две категории: ожидание сигнала и ожидание ресурса. В SQL Server
ожидание сигнала происходит, когда планировщик ждет процессор, чтобы
запланировать задачу, а ожидание ресурса возникает, когда задача получила время
процессора, но находится в ожидании ресурсов диска или памяти. При исследовании
состояний ожидания в приложении нужно иметь в виду следующее. Если отношение
времени ожидания сигнала ко времени ожидания ресурса велико (т.е. если
состояний ожидания сигнала значительно больше, чем состояний ожидания ресурса),
это может служить показателем неэффективного использования процессора. Если же
велик коэффициент отношения времени ожидания ресурса ко времени ожидания
сигнала, это может указывать на неэффективное использование ресурсов диска.
Приступая к оценке производительности приложения, разработчики должны понимать,
какой из типов ожидания преобладает. К счастью, SQLOS предоставляет
"окно" в систему, достаточно прозрачное для того, чтобы разработчики
могли использовать его для ответа на этот вопрос.