選択したプログラムのHDD書き込み速度を制限する方法


23

私のHDDは5400RPMが遅いため、10GBサイズのファイルを操作する場合、その大きなファイルが新しいコピー/多重化/書き込みなどの再作成を完了するまでコンピューターを使用することはできません。プロセスに依存しますが、問題はすべてのHDD速度を使い果たし、このプロセスの実行中は他のプログラムを使用できないことです。

そのため、作業するプログラムのHDD書き込み速度を制限できるのではないかと考えていたので、大きなファイルの処理中にインターネットの閲覧やmp3の再生に使用するための空きHDDの残り速度を確保します。


2
少なくともネイティブでは、WindowsでHDD IOが抑制されることは聞いたことがありません。プロセスの優先度を設定しようとしましたか?:wmic process where name="calc.exe" CALL setpriority "idle"
Marcelo 14

@Marcelo Priorityは、ディスクではなくCPU時間を決定します。大きなファイルを処理する場合、ディスクではなくCPUがコンピューターの速度を低下させます。
ケルタリ14


@Keltariはい、知っています。CPUの優先度を変更すると、問題の最終目標に何らかの影響を与える可能性があると考えました。
マルセロ14

2
巨大なファイルをコピーするときにコンピューターが「使用できない」場合、DMAを有効にするのを忘れている可能性がありますか?通常、ディスクがビジーであるかどうかは、CPUの介入なしで発生するため、ほとんどまたはまったく違いはありません。
デイモン14

回答:


13

残念ながら、それはできません。ハードウェアは、アプリケーションやOSの一部からも抽象化されています。本質的に、アプリケーションは「これをディスクに書き込む」と言い、OSがそれを処理します。アプリケーションは、どのように、またはいつ書かれても処理しません。これらはすべてドライバーとカーネルレベルで処理され、これを変更する実際の方法はありません。

これを行うことができたとしても、実際には、回転する磁気ディスクを使用している-そして、非常に遅い磁気ディスクを使用している-あなたはあまり利益を得ないだろう。ドライブは常に回転しており、ヘッドはディスクに沿って移動しています。ファイルへの書き込み回数が少なくても、ディスクは常にディスク上の正しい領域をシークして読み取り/書き込みを行います。

あなたの最善の選択肢は、別のドライブを取得して、そのドライブで作業を行い、最初のドライブをインターネット、MP3などに残すことです。

PSあなたはあなたが持っているRAMの量に言及しませんでした。スワッピングは、低速の要因である可能性があります。搭載しているRAMの量に応じて、さらに追加しても効果があります。


2
LinuxのWindowsバージョンはionice答えに近づかないでしょうか?
ダニエルベック

@DanielBeck動作する可能性のあるソフトウェアがあるかもしれません。しかし、それを使用することによってどのような合併症が生じるのか誰が知っていますか?それは次のようになりますので、別のドライブにはるかに簡単にだけ平手打ちにし、問題を行うこと。
ケルタリ14


1
アプリケーションを調整できなかった理由に関する原則的な議論は見当たりません。これは非常に簡単なスロットルです。プロセスを毎秒1秒間中断します。これにより、IOが約50%抑制され、他のプロセスがディスクを使用するようになります。シーク時間は10msのオーダーです。
usr 14

@usr:I / Oのタイプと頻度に依存します。あなたのアプローチはいくつかのケースでは機能しますが、他のケースでは機能しません。たとえば、I / Oが完全にカーネルモードで発生している場合、ユーザーモードプロセスを一時停止して常に一時停止できるとは思いません。
Mehrdad 14

9

プロセスラッソでは、I / Oに優先順位を付けることができます。よくある質問から:

v4.1(v4.09ベータ版)の新機能であるProcess Lassoには、必要な場合に利用可能な明示的な現在およびデフォルトのI / O優先度設定があります。これはNT6 +(Vista、Win7など)にのみ適用されます。

ただし、VistaのI / O優先順位付けは、I / Oを実行するスレッドの優先度に基づいており、I / Oを実行するプロセスの優先度クラスに依存しています。実際には、アプリケーションが使用できる優先度には、標準と非常に低いの2つのレベルしかありません。技術的には5つありますが、プロセスで実装または使用できるのはこれら2つだけです。

したがって、スレッドの優先順位の調整は、そのスレッドのI / Oに反映されます。このようにして、Process LassoはすでにI / O優先順位付けを行います。マイクロソフトは、アプリケーションが呼び出しスレッドの優先度を設定することにより(直接またはプロセス優先度の基本クラスを調整することにより)I / O優先度を調整することを推奨します。

MicrosoftのI / O優先順位付けに関するペーパーも参照してください。


1

WindowsですべてのディスクI / Oを消費し続けるプロセスがある場合に行うことは、Process Explorerを起動して、問題のあるプロセスを一時停止することです。仕事が終わって少し待つ準備ができたら、再開します。ディスクI / Oを制御するオールオアナッシングの方法であり、コンピューターを使用している間はプロセスを待つ必要があるため、これは間違いなく最も生産的な方法ではありませんが、これまでのところ、これ以上良い方法はありませんでした。

一方、Cygwinでプロセスを実行できる場合はpv、コンピューターにインストールし、pvの出力レートを調整するオプション(-rと思います)の最初または最後のステップとして使用できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.