Я понимаю, что многие рекомендуют смотреть на другие счетчики, такие как sec / Read и sec / Write вместо Avg. Длина дисковой очереди. Однако у меня есть вопрос об этом конкретном счетчике:
Обычно рекомендуется, чтобы Avg. Длина очереди диска не должна быть больше 2. Я часто вижу, что она не должна быть больше 2 + количество шпинделей на «физическом диске». Вот что мне любопытно. Если я использую внешнюю систему RAID, разве ОС не видит ее как один физический шпиндель? Могу ли я учитывать количество физических шпинделей в массиве при использовании этого счетчика? Было бы полезно немного понять, как это работает.
ОС не производит никаких сложных расчетов. Я размышляю здесь, но, учитывая, как счетчики производительности работают в целом, я предполагаю, что он просто будет увеличивать счетчик и базовый счетчик, когда он отправляет IO, уменьшать счетчик, когда IO возвращается. Если тип счетчика производительности определяется как «Средний», инструменты и библиотеки производительности будут выполнять вычисления на основе необработанных значений (счетчик, базовый счетчик), а время между выборками и результатом будет значением счетчика, которое вы видите.
Нигде в этом процессе физическая структура RAID-массива не отображается. Поэтому, когда вы оцениваете значение, вы должны учитывать количество шпинделей и соответственно учитывать его при принятии решения, является ли значение высоким или низким. Если внешний RAID имеет 100 шпинделей, то в среднем 200 ожидающих запросов - это хорошо, потому что всем 100 шпинделям есть что пережевать. Однако, если у него 10 шпинделей, средняя очередь в 200 означает, что каждый шпиндель просматривает еще 19 запросов, ожидающих обработки после того, как в среднем выполняется текущий, поэтому ввод-вывод является узким местом.
разделите длину очереди на количество используемых шпинделей. учитывать горячее резервирование и четность в зависимости от конфигурации RAID.