Почему бы 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.
Что меня удивляет, так это то, что ваша сеть хранения данных вообще соблюдает этот флаг: наличие защищенного от потери данных кэша записи, сетей хранения данных и массивов хранения обычно не учитывает флаг записи.
С другой стороны, небуферизованный и непроизведенный тест показывает значительно улучшенные результаты.
Может быть, это ваша настоящая проблема: ваша сеть хранения данных соблюдает (возможно, бесполезный, имеет надежный кэш) флаг прохода.