Как оптимизировать дисковый ввод-вывод Windows для обеспечения высокой пропускной способности?

2488
Charles Burns

Допустим, есть 25 процессов, каждый из которых хочет прочитать и проиндексировать большой (скажем, 1 ГБ) файл. Пропускная способность жесткого диска может составлять ~ 100 МБ / с, но перемещение головки и задержка вращения, связанные с перемещением между такими процессами, являются значительными, поэтому может снизить пропускную способность до 5 МБ / с, или всего 5% от пропускной способности обычного диска.

Если бы жесткий диск считывал большой объем данных (скажем, 32 МБ) или считывал все, что мог, в течение длительного времени (скажем, 200 мс), прежде чем перейти к следующему процессу, файловый ввод-вывод мог бы приблизиться к полной пропускной способности диска за счет латентность

Есть ли у Windows такая возможность для достижения этой цели в тех случаях, когда задержка отходит на второй план от пропускной способности?

Как оптимизировать дисковый ввод-вывод Windows для обеспечения высокой пропускной способности?

1
проверьте инструмент DiskSpd: http://blogs.technet.com/b/josebda/archive/2014/10/13/diskspd-powershell-and-storage-performance-measuring-iops-throughput-and-latency-for-both -локальные-диски-и-СМБ-файлы shares.aspx magicandre1981 9 лет назад 0

1 ответ на вопрос

-1
Twisty Impersonator

This is what the NCQ protocol is for. A drive that supports NCQ looks at all of the incoming commands and reorders them to service them more efficiently (and essentially, reordering the commands is what you're asking about).

That said, I see in your example you have a disk queue depth of 27, so we're well past the help of even NCQ. This is a problem for RAID (possibly coupled with faster physical storage).

There are storage parameters that can be adjusted in Windows, particularly those related to caching behavior, but that's not going to help enough in your case.

Я думаю о NCQ как о большей помощи для небольших, почти случайных операций ввода-вывода, таких как доступ к базе данных. Используемый диск имеет NCQ, и это, вероятно, немного помогает, но я думаю, что эта ситуация больше связана с настройкой планировщика ввода-вывода Windows. Linux позволяет мне выбирать планировщики ввода / вывода (дедлайн, CFQ ...), но, честно говоря, ни один из них не будет намного лучше, чем Windows по умолчанию в этом случае. Charles Burns 9 лет назад 0
Кроме того, NCQ используется приводом, производительность которого проверена в первоначальном вопросе, но все еще дает менее 5% максимальной пропускной способности. Charles Burns 8 лет назад 0

Похожие вопросы