Почему бы diskpd работал лучше без кеша?

В настоящее время мы изучаем высокую задержку диска на сервере Windows 2012 r2, который работает как сервер SQL. Это виртуальная машина под VMware, и хранилище данных неисправного диска связано с очень высокой производительностью LUN в сети SAN.

SAN показывает очень хорошее время отклика для LUN даже во время инцидентов и во время моего теста. Хранилище данных также показывает очень хорошее время отклика в любой момент. Процессор и память не являются узким местом, я дважды проверил.

Microsoft предложила использовать diskpd для проверки производительности нашего диска. Вот результат 2-х комплектов теста. Я пробовал их пару раз, на более длительный промежуток времени и в другое время, поэтому я уверен, что результат не случаен.

Командная строка: diskpd -b64k -o32 -t4 -d60 -w50 -Sw -r -L -c20G -Z1G C:\iotest.data

Всего IO поток | байты | I/Os | МБ / с | I / O за с | AvgLat | LatStdDev | файл

12623020032 | 192612 | 200,59 | 3209,46 | 38,636 | 21,687

Командная строка: diskpd -b64k -o32 -t4 -d60 -w50 -Su -r -L -c20G -Z1G C:\iotest.data

Всего IO поток | байты | I/Os | МБ / с | I / O за с | AvgLat | LatStdDev | файл

78517239808 | 1198078 | 1247,71 | 19963.34 | 6.410 | 8,202

В соответствии с документацией о diskpd -Sw отключить запись, хотя IO и -Su отключить кеширование программного обеспечения. Позвольте мне указать, что в первой командной строке с параметром -Sw или без него результат один и тот же, что позволяет мне понять, что этот флаг не оказывает большого влияния. Используя этот инструмент (созданный и управляемый командой Windows), мы можем заключить, что кеш (отключение с помощью -Su) ухудшает производительность диска, но это кажется неправильным.

Мои вопросы:

  • Почему программное кэширование снижает производительность?

  • Влияет ли это на работу приложения так же, как на этот тест?

  • Почему IOMeter дает мне ту же производительность, что и тест без кеширования программного обеспечения?

Спасибо,

2 ответа

Вы изменяете две переменные, буферизируете и записываете, так что вы не можете сказать, что изменилось. Лучшее сравнение будет между -Sb "буферизованный" и -Su "Небуферизован".

На самом деле, вполне вероятно, что -Sw убивает вашу производительность. Любой массив хранения, который стоит называть таким, имеет кэш записи, поэтому запись может быть подтверждена быстрее, чем запись на диски в массиве. Пиши через можно обойти это.

Проверка всех доступных компонентов на массиве, SAN и хосте, программном и аппаратном обеспечении.

Вы неправильно поняли, что -Sw делает.

Как указано diskspd документы, -Sw фактически обходит кэш записи ОС, поскольку открывает файл назначения с помощью FILE_FLAG_WRITE_THROUGH.

Что меня удивляет, так это то, что ваша сеть хранения данных вообще соблюдает этот флаг: наличие защищенного от потери данных кэша записи, сетей хранения данных и массивов хранения обычно не учитывает флаг записи.

С другой стороны, небуферизованный и непроизведенный тест показывает значительно улучшенные результаты.

Может быть, это ваша настоящая проблема: ваша сеть хранения данных соблюдает (возможно, бесполезный, имеет надежный кэш) флаг прохода.

Другие вопросы по тегам