ハードドライブのアクティビティが停止するまで待つのは良い習慣でしょうか?

ハードドライブのアクティビティが停止するまで待つのは良い習慣でしょうか?

Windows 3.1 の頃から、プログラムを開いたり、バッチ アクティビティを開始したりする前に、ハード ドライブのアクティビティが停止するのを常に待っていました。当時は、これが役に立ったと思います。2 つのプログラムを同時に開くと、1 つのプログラムを開いて完了してからもう 1 つのプログラムを開くよりもずっと時間がかかることがはっきりとわかりました。また、別のプログラムを開く前に、1 つのプログラムが完全に終了する (スワップアウトする) のを待つ傾向もありました。

しかし、今日ではキャッシュ アルゴリズムとハード ドライブのパフォーマンスおよびキャッシュは大きく変化しました。

質問は、ハードドライブのアクティビティが停止するのを待つことでまだ良いことをしているのでしょうか、それとも心配せずに好きなことをすればよいのでしょうか?

私がこの質問をする理由は、最新の Lenovo ノートパソコンに HDD LED が付いていないため、動作しているかどうかが分からないからです。

ちなみに、私の現在のシステムは Windows 7 です。

答え1

簡単に答えると、それはなぜハードドライブのライトが点灯しています。長い答え:

しかし、今日ではキャッシュ アルゴリズムとハード ドライブのパフォーマンスおよびキャッシュは大きく変化しました。

はい、これは本当です。しかし、HDDのLEDが消えるのを待ったのはそのためではありません(というか、パフォーマンスの低下にあまり気づかなくなったのはそのためではありません)。ハードドライブは、1つのことしかできない大きな機械装置です。やっている一度に1つのことだけ。一度に1つのセクターしか読み書きできないため、ハードドライブを同時に使用しようとすると、通常は殴打

質問は、ハードドライブのアクティビティが停止するのを待つことでまだ良いことをしているのでしょうか、それとも心配せずに好きなことをすればよいのでしょうか?

また、場合によりますHDDの動作に関係します。なぜでしょうか? ギガバイト単位のファイルをハードドライブに転送する場合、ディスクスラッシングが発生する可能性が高くなります (これにより、ドライブヘッドが高速で前後に動きます)。ドライブの寿命が短くなる)。しかし、理由は分からないHDD LED が点滅している場合は、バックグラウンド プロセスである可能性があります。

ほとんどのバックグラウンドプロセス(検索インデクサー、ディスクデフラグ、.NETランタイムオプティマイザーなど)は、ないスラッシングの原因となる理由は 2 つあります。1 つ目は、バックグラウンド プロセスは低い優先度で実行されるため、オペレーティング システムは I/O 要求に低い優先度を設定することです。2 つ目は、これらのバックグラウンド プロセスのほとんどは、CPU またはディスクの使用量が一定のしきい値に達すると、システムの認識されるパフォーマンスに影響を与えないように (またはスラッシングを引き起こすように)、停止するかアクティビティを減らすことです。

私がこの質問をする理由は、最新の Lenovo ノートパソコンに HDD LED が付いていないため、動作しているかどうかが分からないからです。

心配する必要はありません。Windows 7のバックグラウンドサービスのほとんどは、上で説明した問題を認識しているため、速度低下は発生しません。あなたハードディスクを同時に使用しようとしている場合 (つまり、一度に複数のプログラムをロードしながら大量のファイルを転送している場合)、スラッシングは発生しないはずです。

最後に、特定のプロセスがハードドライブを使用している転送速度を知りたい場合は、質問を参照してください。現在ハード ドライブの帯域幅が何パーセント使用されているかを確認するにはどうすればよいですか?


最後にもう1つ注意すべきことは、ソリッドステートドライブを使用するとディスクスラッシングの状況が一変することです。完全に回避することはできませんが(SSDの場合、機械式ハードドライブと比較してソリッドステートドライブではその差ははるかに小さくなります(ソリッドステートドライブの長所と短所は何ですか?詳細については、こちらをご覧ください。

答え2

場合によります。ディスク IO のみを行う 2 つのタスクを同時に実行している場合、互いの速度が低下するため、一度に 1 つずつ実行した方がよいでしょう。ほとんどのタスクには少なくともいくらかの CPU 時間が必要で、その間ディスクは他のタスクのために自由に使用できます。そのため、このように 2 つのタスクを実行すると、1 つのタスクが CPU を使用している間にもう 1 つのタスクが IO を実行でき、その逆も成り立つため、全体的なパフォーマンスが向上します。

書き込みアクティビティに関しては、ほとんどの場合、書き込みはしばらくキャッシュ内に留まり、バックグラウンドでディスクにゆっくりとフラッシュされます。新しいプログラムを実行する前に、バックグラウンド書き込みがすべて完了するのを待つのは時間の無駄です。新しいプログラムが最初にロードされている間、それらの書き込みがしばらくキャッシュ内に留まっても何も問題はありません。その後、そのプログラムがアイドル状態になって何かを待つか、ディスク IO の代わりに計算を開始すると、書き込みはアイドル状態のディスク時間を使用して終了できます。

平均的には、ほとんどの場合、2 つの処理を同時に実行すると純粋な利益が得られるため、一般的なルールとして、他の処理を実行する前にディスク IO が停止するのを待つ必要はありません。

答え3

読み取り/書き込み要求を管理するのは、ユーザーではなく、ハードドライブ コントローラーと OS の仕事です。

昔は、確かに、I/O が多すぎるとアプリケーションがフリーズしていました。しかし、それは C 言語とテキスト エディターでほとんど何でも書けたソフトウェア開発の黄金時代の話です。

今はハードウェアの時代です。ハードウェアはソフトウェア開発をはるかに上回っており、今日のハードウェアはほぼ 100% 稼働し、まったく遅れることはありません。それに加えて、開発者は教訓を得ました。ますます多くのプログラムが UI を別のスレッドで回転させ、過去の Hourglass/SpinningBeachBall of Death のような無反応状態を軽減しています。

答え4

他のシステムでは問題になりません。しかし、一度に多くの処理が実行される場合、Windows は簡単にスラッシング状態 (またはデッドロック) に陥る可能性があります。これは、起動直後に特に当てはまります。

すべてのアクティビティが停止するまで待つ必要はありませんが、通常は、システムがかなり正常に応答するまで待つ必要があります。

関連情報