Назад | Перейти на главную страницу

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

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

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

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

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

Всего потоков ввода-вывода | байты | Ввод / вывод | МБ / с | Ввода / вывода в секунду | AvgLat | LatStdDev | файл

12623020032 | 192612 | 200,59 | 3209.46 | 38.636 | 21,687

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

Всего потоков ввода-вывода | байты | Ввод / вывод | МБ / с | Ввода / вывода в секунду | AvgLat | LatStdDev | файл

78517239808 | 1198078 | 1247.71 | 19963.34 | 6.410 | 8,202

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

Мои вопросы:

Спасибо,

Вы не понимаете, что -Sw делает.

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

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

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

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

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

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

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