15 марта 2010 г.

Странный read prefetching

В прошлом посте я немного рассказал, как работает read prefetching. Продолжая эту тему, я хочу привести один интересный пример анализа предвыборки данных. К слову, это графики реально работающеuj Clariion. Я натолкнулся на них несколько дней назад, анализируя производительность массива одного из наших заказчиков.



Попробуйте предложить несколько гипотез, почему при таком достаточно стабильном и очень высоком значении метрики Used Prefetches, говорящей о высокой эффективности предварительной выборки данных, график относительного количества попаданный в кэш Read Cache Hit Ratio имеет несколько ошеломляюще огромных провалов.

Не читайте пока дальше, подумайте пару минут….

Мой вариант объяснения такого, странного на первый взгляд, поведения сразу становится очевиден, если вы посмотрите на следующий график:


Значительное уменьшение Read Size приводит к очень сильному росту Throughput.


Запросы на чтение последовательны, но поступают они с очень высокой скоростью (Throughput). Поэтому, конечно, Prefetching срабатывает и молотит на полную катушку. Однако, данные предвыборки не успевают быть доставлены с медленных дисков в кэш до того, как на них поступает запрос. Это, конечно ведет к увеличению событий Read miss и, соответственно, провалам в Read Cache Hit Ratio.

Если бы такие запросы были бы постоянными, то разумнее всего было бы вообще выключить prefetching для этого LUN. Тем не менее, учитывая высокое количество запросов блоками большого размера в другие промежутки времени, делать это все-таки не разумно.

Комментариев нет:

Отправить комментарий

Примечание. Отправлять комментарии могут только участники этого блога.