Як обмежити швидкість запису на жорсткий диск для вибраних програм


23

Мій жорсткий диск має 5400 об / хв, і при роботі з файлами розміром 10 ГБ неможливо користуватися комп'ютером, поки цей великий файл не закінчить повторно створити нову копію / вимкнення / запис / тощо. Залежить від процесу, справа в тому, що він з'їдає всю швидкість жорсткого диска, і жодна інша програма не може бути використана, поки цей процес працює.

Тож я думав, що, можливо, я можу обмежити швидкість запису на жорсткий диск для програм, з якими працюю, тож тоді було б зарезервовано безкоштовну швидкість залишку жорсткого диска, яку можна використовувати для перегляду Інтернету чи відтворення mp3-файлів під час обробки великих файлів.


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

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


@Keltari Так, я знаю. Я просто думав, що, можливо, зміна пріоритету для процесора може мати певний вплив на кінцеву мету питання.
Марсело

2
Якщо комп'ютер "непридатний" при копіюванні величезних файлів, чи можливо ви забули включити DMA? Зазвичай, зайнятий чи ні диск не має великої різниці, оскільки це відбувається без особливого (або будь-якого) втручання процесора.
Деймон

Відповіді:


13

На жаль, ви не можете цього зробити. Обладнання абстрагується від програм і навіть частин ОС. По суті, додаток говорить "написати це на диск", і ОС обробляє це. Програма не обробляє, як і навіть коли вона пишеться. Все це обробляється на рівні драйвера та ядра, і немає реального способу змінити це.

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

Вашим найкращим варіантом буде отримати інший накопичувач і виконати свою роботу на цьому диску, залишивши перший диск для вашого Інтернету, MP3 та ін.

PS Ви не згадали, скільки у вас оперативної пам'яті. Обмін може бути фактором низької швидкості. Залежно від обсягу оперативної пам’яті, додавання більше лише допоможе.


2
Чи не ioniceпідійшла б версія Windows для Linux на відповідь?
Даніель Бек

@DanielBeck Там може бути програмне забезпечення, яке може працювати. Однак, хто знає, які ускладнення можуть виникнути від його використання? Це було б так набагато легше просто ляпас в іншому диску і зробити з цим питанням.
Келтарі

1
Ти можеш це зробити. Дивіться відповідь dsulimano на подібне запитання
niutech

1
Я не бачу жодного принципового аргументу щодо того, чому програму не вдалося вимкнути. Ось дуже простий газ: Призупиняйте процес на 1 секунду щосекунди. Це зменшує IO приблизно на 50% і дозволяє іншим процесам проскочити, щоб використовувати диск. Час пошуку шукається близько 10 мс.
usr

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

9

Процес Lasso дозволяє розставити пріоритети вводу / виводу. З їх FAQ:

Нове в v4.1 (v4.09 бета), Process Lasso має явні поточні та стандартні параметри пріоритету вводу / виводу для тих, хто їх вимагає. Це стосується лише NT6 + (Vista, Win7, ...).

З цього моменту пріоритетність вводу / виводу Vista базується на пріоритеті потоку, що виконує введення-виведення, що залежить від класу пріоритетів процесу, що виконує введення-виведення. Насправді є лише два рівні пріоритету, якими можна користуватися програмами: Нормальний та Дуже низький. Хоча технічно їх існує 5, проте лише ці два є реалізованими або корисними процесами.

Тому коригування пріоритетів потоку поширюватиметься на введення / вивід цього потоку. Таким чином, Process Lasso вже робить пріоритетність вводу / виводу. Microsoft рекомендує програмам коригувати пріоритет вводу-виводу на основі встановлення пріоритету викликової нитки (безпосередньо або шляхом коригування базового класу пріоритету процесу).

Дивіться також документ про пріоритетність вводу / виводу від Microsoft .


1

Те, що я роблю, коли в мене є процес, який продовжує їсти весь диск / вхід / вивід у Windows, - це відкрити Провідник процесів і призупинити процес порушення. Після того, як я закінчуся своїм бізнесом і готовий трохи почекати, я відновлю його. Це, безумовно, не найпродуктивніший спосіб зробити це, оскільки це повний або нічим спосіб управління дисковим входом / виходом, і ваш процес повинен буде чекати, поки ви користуєтесь своїм комп’ютером, але поки що я не бачив кращої альтернативи.

З іншого боку, якщо ви можете виконати свій процес на Cygwin, ви можете встановити його pvна комп’ютер і використовувати його як перший або заключний крок з можливістю (я думаю, що це -r) для придушення вихідної швидкості пв.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.