1

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

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

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

1 ответ1

0

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

Тем не менее, я вижу, что в вашем примере у вас глубина дисковой очереди 27, так что мы далеко не справились даже с NCQ. Это проблема для RAID (возможно, в сочетании с более быстрой физической памятью).

В Windows есть параметры хранения, которые можно настраивать, особенно те, которые относятся к поведению кэширования, но в вашем случае это не поможет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .