Как ограничить скорость записи на жесткий диск для выбранных программ


23

Мой жесткий диск работает медленно 5400 об / мин, и при работе с файлами размером 10 ГБ невозможно использовать компьютер, пока этот большой файл не закончит воссоздание новой копии / муксинга / записи / и т. Д. зависит от процесса, дело в том, что он съедает всю скорость жесткого диска, и никакая другая программа не может быть использована во время этого процесса.

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


2
Я никогда не слышал о IO HDD в Windows, по крайней мере, изначально. Вы пытались установить приоритет процесса ?:wmic process where name="calc.exe" CALL setpriority "idle"
Марсело

@Marcelo Priority определяет время процессора, а не диска. При обработке большого файла диск замедляет работу компьютера, а не процессора.
Келтари


@Keltari Да, я в курсе. Я просто подумал, что, возможно, изменение приоритета для процессора может оказать некоторое влияние на конечную цель в этом вопросе.
Марсело

2
Если компьютер «не работает» при копировании огромных файлов, возможно, вы забыли включить DMA? Обычно то, занят диск или нет, не имеет большого значения или не имеет значения, поскольку это происходит без особого (или какого-либо) вмешательства ЦП.
Деймон

Ответы:


13

К сожалению, вы не можете этого сделать. Аппаратное обеспечение абстрагируется от приложений и даже частей ОС. По сути, приложение говорит «записать это на диск», а ОС обрабатывает его. Приложение не обрабатывает, как и даже когда оно написано. Все это обрабатывается на уровне драйвера и ядра, и реального способа изменить это не существует.

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

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

PS Вы не упомянули, сколько у вас оперативной памяти. Обмен может быть фактором медленной скорости. В зависимости от того, сколько у вас оперативной памяти, добавление большего количества данных только поможет.


2
Разве версия для Linux для Windows ioniceне приблизится к ответу?
Даниэль Бек

@DanielBeck Там может быть программное обеспечение, которое может работать. Однако кто знает, какие осложнения могут возникнуть при его использовании? Это было бы так гораздо легче просто пощечина в другом диске и сделать с этим вопросом.
Келтари

1
Ты можешь это сделать. Смотрите ответ дсулимано на похожий вопрос
niutech

1
Я не вижу принципиальных аргументов в пользу того, почему приложение не может быть задушено. Вот очень простая задача: приостановить процесс на 1 секунду каждую секунду. Это уменьшает количество операций ввода-вывода примерно на 50% и позволяет другим процессам подключаться к использованию диска. Время поиска порядка 10мс.
USR

@usr: это зависит от типа и частоты ввода / вывода. Ваш подход работает в некоторых случаях, но не в других - например, если ввод-вывод происходит полностью в режиме ядра, я не думаю, что вы всегда можете приостановить его, приостановив процесс пользовательского режима.
Мердад

9

Процесс Лассо позволяет расставить приоритеты ввода / вывода. Из их FAQ:

Новое в версии 4.1 (бета-версия 4.09), Process Lasso имеет явные текущие и стандартные настройки приоритета ввода / вывода, доступные тем, кто в них нуждается. Это относится только к NT6 + (Vista, Win7, ...).

ОДНАКО, приоритеты ввода / вывода в Vista основаны на приоритете потока, выполняющего ввод / вывод, который зависит от класса приоритета процесса, выполняющего ввод / вывод. На самом деле приложения могут использовать только два уровня приоритета: обычный и очень низкий. Хотя технически существует 5, только эти два реализуются или могут использоваться процессами.

Поэтому корректировка приоритетов потока будет распространяться на ввод / вывод этого потока. Таким образом, Process Lasso уже устанавливает приоритеты ввода / вывода. Microsoft рекомендует приложениям корректировать свои приоритеты ввода / вывода, устанавливая приоритет вызывающего потока (напрямую или путем настройки базового класса приоритета процесса).

См. Также документ по расстановке приоритетов ввода / вывода от Microsoft .


1

То, что я делаю, когда у меня есть процесс, который продолжает поглощать весь мой дисковый ввод-вывод в Windows, вызывает Process Explorer и приостанавливает нарушающий процесс. После того, как я закончу свое дело и готов немного подождать, я возобновляю его. Это определенно не самый продуктивный способ сделать это, так как это полный или нулевой способ управления дисковым вводом / выводом, и вашему процессу придется подождать, пока вы используете компьютер, но пока я не нашел лучшей альтернативы.

С другой стороны, если вы можете выполнять свой процесс на Cygwin, вы можете установить его pvна свой компьютер и использовать его в качестве первого или последнего шага с опцией (я думаю, что это -r) для регулирования скорости вывода pv.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.