
たくさんのビデオを見て、コンピューターの仕組みを少し理解できるようになりました。RAM とは何か、揮発性メモリと不揮発性メモリとは何か、スワップのプロセスについて理解が深まりました。また、RAM を増やすとコンピューターの速度が上がる理由も理解できました。
ディスク領域をクリーンアップするとコンピューターが高速化される理由がわかりません。本当に高速化されるのでしょうか? なぜ高速化されるのでしょうか? データを保存できる空き領域を探すためでしょうか? それとも、データを保存できる十分な長さの連続領域を作るためにデータを移動するためでしょうか? ハード ディスクにどれくらいの空き領域を残しておけばよいでしょうか?
答え1
うっかり本を書いてしまいました。まずはコーヒーを飲んでください。
ディスク領域を空にするとコンピューターの速度が上がるのはなぜですか?
少なくともそれだけではそうではありません。これは本当によくある誤解です。よくある誤解である理由は、ハードドライブがいっぱいになることは、伝統的に他のことと同時に起こることが多いからです。できた†コンピュータの速度が低下します。SSDのパフォーマンスはドライブがいっぱいになると劣化するしかし、これは比較的新しい問題であり、SSDに特有のもので、一般ユーザーにはあまり目立ちません。一般的に、空きディスク容量が少ないことは、レッドニシン。
たとえば、次のようなものです。
ファイルの断片化。ファイルの断片化は問題††、空き容量の不足は間違いなく多くの寄与要因ではない唯一のその原因。ここで重要なポイントをいくつか挙げます。
ファイルが断片化される可能性はないドライブに残っている空き容量に関係します。これらは、ドライブ上の空き容量の最大の連続ブロック(空き容量の「穴」など)のサイズに関係しており、空き容量の量は上限を設定することになりますこれらは、ファイル システムがファイルの割り当てを処理する方法にも関連しています (詳細は後述)。考慮する:空き領域がすべて 1 つの連続したブロックにある状態で 95% 使用されているドライブでは、新しいファイルが断片化される可能性は 0% です††† (追加されたファイルが断片化される可能性は空き領域とは無関係です)。データがドライブ全体に均等に分散されている状態で 5% 使用されているドライブでは、断片化される可能性が非常に高くなります。
ファイルの断片化に留意してください断片化されたファイルにアクセスしているときのみパフォーマンスに影響します。考慮する:断片化が解消されたドライブには、まだ空き領域が多数残っています。これはよくあるシナリオです。すべてがスムーズに動作しています。しかし、最終的には、空き領域の大きなブロックがなくなることがあります。巨大な映画をダウンロードすると、ファイルはひどく断片化されてしまいます。これにより、コンピュータの速度が低下することはありません。以前は問題なかったアプリケーションファイルなどが突然断片化することはありません。これにより、映画読み込みに時間がかかります(ただし、一般的な映画のビットレートはハードドライブの読み込み速度に比べて非常に低いため、ほとんど気付かないでしょう)。また、読み込み中にI/Oバウンドのパフォーマンスに影響を与える可能性があります。映画読み込まれていますが、それ以外は何も変わりません。
ファイルの断片化は確かに問題ではありますが、OSやハードウェアレベルのバッファリングやキャッシュによってその影響は軽減されることが多いです。遅延書き込み、先読み、プリフェッチャーWindowsなどのオペレーティングシステムでは、断片化の影響を軽減するのに役立ちます。実は断片化が深刻になるまでは、大きな影響は受けません (スワップ ファイルが断片化されていない限り、おそらく気付かないと思います)。
検索インデックス作成も別の例です。自動インデックス作成が有効になっているが、OS がこれを適切に処理していないとします。コンピューターにインデックス可能なコンテンツ (ドキュメントなど) を保存するにつれて、インデックス作成にかかる時間が長くなり、I/O と CPU 使用率の両方で、コンピューターの実行中の体感速度に影響し始める可能性があります。これは空き容量とは関係なく、インデックス可能なコンテンツの量に関係しています。ただし、空き容量が不足すると、より多くのコンテンツを保存することと密接に関係するため、誤った関連付けが行われます。
ウイルス対策ソフトウェア。検索インデックスの例と同様です。ドライブのバックグラウンド スキャンを実行するようにウイルス対策ソフトウェアを設定しているとします。スキャン可能なコンテンツが増えると、検索に必要な I/O と CPU リソースが増え、作業に支障をきたす可能性があります。これも、スキャン可能なコンテンツの量に関係しています。コンテンツが増えると空き領域が減ることがよくありますが、空き領域不足が原因ではありません。
インストールされたソフトウェア。コンピュータの起動時に読み込まれるソフトウェアが多数インストールされており、起動時間が遅くなっているとします。この速度低下は、多数のソフトウェアが読み込まれるために発生します。ただし、インストールされたソフトウェアはハード ドライブの容量を消費します。そのため、この現象が発生すると同時にハード ドライブの空き容量が減少し、誤った接続が簡単に発生する可能性があります。
- 他にも同様の例が数多くあり、それらを総合すると、現れる空き領域の不足とパフォーマンスの低下は密接に関連しています。
上記は、これがよくある誤解であるもう一つの理由を示しています。空き容量の不足は速度低下の直接的な原因ではありませんが、さまざまなアプリケーションをアンインストールしたり、インデックスまたはスキャンされたコンテンツを削除したりすることが時々あります(ただし、常にそうとは限りません。この回答の範囲外です)。増加する残りの空き容量とは関係のない理由で、パフォーマンスが再び向上します。ただし、これにより、当然のことながらハード ドライブの容量も解放されます。したがって、ここでも、「空き容量の増加」と「より高速なコンピューター」の間には、明らかな (しかし誤った) 関連性が生まれます。
考慮する:インストールされているソフトウェアなどのせいでマシンの動作が遅くなっている場合、ハード ドライブをより大きなハード ドライブにクローンし、パーティションを拡張して空き領域を増やしても、マシンが魔法のように高速化することはありません。同じソフトウェアが読み込まれ、同じファイルが同じ方法で断片化され、同じ検索インデクサーが引き続き実行され、空き領域が増えても何も変わりません。
それは、ものを保存するメモリ領域の検索と関係があるのでしょうか?
いいえ、そうではありません。ここで注目すべき非常に重要な点が 2 つあります。
ハードドライブは、データを保存する場所を探すために周囲を検索しません。ハード ドライブは愚かです。何の価値もありません。それは、OS が指示した場所に盲目的にデータを配置し、要求されたものを何でも読み取る、アドレス指定された大きなストレージ ブロックです。最新のドライブには、長年の経験に基づいて OS が要求するものを予測する (一部のドライブは、その上にあるファイル システムを認識します) よう設計された、洗練されたキャッシュおよびバッファリング メカニズムがあります。しかし、基本的に、ドライブは、時折ボーナス パフォーマンス機能を備えた、単なる大きな愚かなストレージのブロックと考えてください。
オペレーティング システムも、物を置く場所を検索しません。つまり、「検索」は行われません。この問題はファイルシステムのパフォーマンスにとって非常に重要なため、解決に多大な努力が払われてきました。ドライブ上でデータが実際にどのように整理されるかは、ファイルシステムたとえば、FAT32 (古い DOS および Windows PC)、NTFS (最近の Windows)、HFS+ (Mac)、ext4 (一部の Linux) などです。「ファイル」や「ディレクトリ」という概念も、一般的なファイル システムの産物にすぎません。ハード ドライブは「ファイル」と呼ばれる謎の怪物について知りません。詳細はこの回答の範囲外です。しかし、基本的に、一般的なファイル システムはすべて、ドライブ上の使用可能な領域を追跡する方法を備えているため、通常の状況 (つまり、ファイル システムが正常) では、空き領域の検索は不要です。例:
NTFSがありますマスターファイルテーブルこれには、特別なファイル
$Bitmap
などと、ドライブを説明する大量のメタデータが含まれます。基本的に、次の空きブロックがどこにあるかを追跡し、毎回ドライブをスキャンしなくても、新しいファイルを空きブロックに直接書き込むことができます。もう一つの例、拡張子4いわゆる「ビットマップアロケータ」これは、ext2 および ext3 の改良版で、基本的に空きブロックのリストをスキャンするのではなく、空きブロックがどこにあるかを直接判断するのに役立ちます。また、ext4 は「遅延割り当て」もサポートしています。つまり、データをドライブに書き込む前に OS が RAM にデータをバッファリングすることで、断片化を減らすためにデータの配置場所をより適切に決定します。
他にもたくさんの例があります。
あるいは、何かを保存するために十分に長い連続したスペースを作るために、物を移動させることでしょうか?
いいえ。少なくとも私が知っているファイル システムでは、このようなことは起こりません。ファイルは断片化されてしまうだけです。
「何かを保存するために十分な長さの連続したスペースを作るために物を移動する」というプロセスは、デフラグこれは、ファイルが書き込まれるときには発生しません。ディスク デフラグ ツールを実行すると発生します。少なくとも新しい Windows では、これはスケジュールに従って自動的に発生しますが、ファイルの書き込みによってトリガーされることはありません。
できる避けるこのようにデータを移動することがファイル システムのパフォーマンスの鍵であり、断片化が発生する理由であり、デフラグが別の手順として存在する理由でもあります。
ハードディスクにどれくらいの空き容量を残しておけばよいでしょうか?
これは答えるのが難しい質問であり、この答えはすでに小さな本になっています。
経験則:
すべてのタイプのドライブの場合:
- 最も重要なのは、十分な空きスペースを残すことですコンピュータを効果的に使用するために作業スペースが不足している場合は、より大きなドライブが必要になります。
- 多くのディスク デフラグ ツールでは、動作するために最低限の空き領域 (Windows のツールでは最悪の場合でも 15% 必要) が必要です。この空き領域は、他のものが再配置される間、断片化されたファイルを一時的に保持するために使用します。
- 他の OS 機能のためにスペースを残しておきます。たとえば、マシンに十分な物理 RAM がなく、動的にサイズ調整されるページ ファイルで仮想メモリが有効になっている場合は、ページ ファイルの最大サイズに十分なスペースを残しておく必要があります。または、休止モードにするラップトップがある場合は、休止状態ファイル用に十分な空きスペースが必要です。このようなことです。
SSD 固有:
- 最適な信頼性(そして、ある程度のパフォーマンス)のために、SSDには空き領域が必要です。あまり詳しく説明せずに言えば、SSDは同じ場所に常に書き込み(消耗します)することを避けるために、ドライブ全体にデータを分散させるために使用されます。空き領域を残すというこの概念は、過剰プロビジョニングそれは重要ですしかし、多くのSSDでは、強制的にオーバープロビジョニングされたスペースがすでに存在している。つまり、ドライブにはOSに報告されるよりも数十GB多くあることが多いのです。ローエンドのドライブでは、手動で分割されていないスペースですが、必須OPのドライブの場合は、空きスペースを残す必要はありませんここで注目すべき重要な点は過剰にプロビジョニングされたスペースは、多くの場合、パーティション化されていないスペースからのみ取得されます。パーティションがドライブ全体を占め、空き領域が残っている場合、いつもカウントします。多くの場合、手動でオーバープロビジョニングを行うには、パーティションを縮小してドライブのサイズよりも小さくする必要があります。詳細については、SSD のユーザー マニュアルを確認してください。TRIM やガベージ コレクションなども影響しますが、この回答の範囲外です。
個人的には、空き容量が 20 ~ 25% 程度残っているときに、通常、より大きなドライブを購入します。これはパフォーマンスとは関係ありません。その時点に達すると、おそらくすぐにデータ用の容量が不足し、より大きなドライブを購入する時期になると予想されるからです。
空き容量を監視することよりも重要なのは、適切な場所でスケジュールされたデフラグが有効になっていることを確認することです(SSDでは有効ではありません)。そうすることで、深刻な状況に陥ることはありません。同様に重要なのは、誤った調整を避け、OSに任せることです。たとえば、Windowsプリフェッチャーを無効にしないでください(SSDを除く)など。
最後にもう 1 つ言及する価値があります。ここでの他の回答の 1 つで、SATA の半二重モードでは読み取りと書き込みが同時に行われないという記述がありました。これは事実ですが、非常に単純化されており、ここで議論されているパフォーマンスの問題とはほとんど関係がありません。これは、単純に、データを双方向に転送できないことを意味します。電線上同時に、SATAにはかなり複雑な仕様最大ブロック サイズが非常に小さく (回線上のブロックあたり約 8kB だと思います)、読み取りおよび書き込み操作キューなどがあり、読み取りの進行中にバッファーへの書き込みが発生したり、インターリーブ操作などが行われたりすることを防ぎます。
発生するブロッキングは物理リソースの競合が原因で、通常は十分なキャッシュによって緩和されます。SATA のデュプレックス モードは、ここではほとんど無関係です。
†「速度低下」は広い意味を持つ用語です。ここでは、I/O バウンド (たとえば、コンピューターが数値計算を行っている場合、ハード ドライブの内容は影響しません) または CPU バウンドで、CPU 使用率が高い関連項目 (たとえば、ウイルス対策ソフトウェアが大量のファイルをスキャンしている場合) と競合しているものを指します。
†† SSDはSSD は機械装置と同じ制限に直面していないにもかかわらず、シーケンシャル アクセス速度がランダム アクセスよりも一般的に高速であるという点で断片化の影響を受けます (それでも、James Snell がコメントで指摘しているように、ウェア レベリングなどにより、断片化がなくてもシーケンシャル アクセスが保証されるわけではありません)。ただし、ほぼすべての一般的な使用シナリオでは、これは問題になりません。SSD の断片化によるパフォーマンスの違いは、アプリケーションの読み込み、コンピューターの起動などでは、通常無視できるほどです。
†††意図的にファイルを断片化していない正常なファイル システムを想定しています。
答え2
に加えてナサニエル・ミークの説明HDD の場合、SSD の場合はシナリオが異なります。
SSD は、SSD 上のどの場所へのアクセス時間も同じなので、散在したデータには影響されません。通常の SSD アクセス時間は 0.1 ミリ秒ですが、通常の HDD アクセス時間は 10 ~ 15 ミリ秒です。ただし、SSD に既に書き込まれているデータには影響されます。
既存のデータを上書きできる従来の HDD とは異なり、SSD はデータを書き込むために完全に空の領域を必要とします。これは、削除済みとしてマークされたデータを消去するトリムおよびガベージ コレクションと呼ばれる機能によって実行されます。ガベージ コレクションは、SSD 上に一定量の空き領域がある場合に最も効果的に機能します。通常、15% ~ 25% の空き領域が推奨されます。
ガベージ コレクションが時間内にジョブを完了できない場合、各書き込み操作の前に、データが書き込まれるはずのスペースのクリーンアップが行われます。これにより、各書き込み操作の時間が 2 倍になり、全体的なパフォーマンスが低下します。
ここは素晴らしい記事トリムとガベージコレクションの機能を説明する
答え3
従来のハードディスクの内部には、個々のビットやバイトが実際にエンコードされる回転する金属プラッタがあります。プラッタにデータが追加されると、ディスク コントローラはまずそれをディスクの外側に保存します。新しいデータが追加されると、スペースが使用され、最後にディスクの内側に向かって移動します。
これを念頭に置くと、ディスクがいっぱいになるとディスク パフォーマンスが低下する原因となる 2 つの影響があります。シークタイムそして回転速度。
シークタイム
従来のハードディスクでは、データにアクセスするには、読み取り/書き込みヘッドを物理的に正しい位置に移動する必要があります。これには「シーク時間」と呼ばれる時間がかかります。メーカーはディスクのシーク時間を公開していますが、通常は数ミリ秒です。大したことではないように思えるかもしれませんが、コンピュータにとっては永遠の時間です。多くタスクを完了するためには、さまざまなディスクの場所をシークする必要がある (これはよくあることです) ため、シーク時間が積み重なって、顕著な遅延や待ち時間が発生する可能性があります。
ほぼ空のドライブでは、ほとんどのデータが同じ位置またはその近く、通常は読み取り/書き込みヘッドの休止位置に近い外縁にあります。これにより、ディスク全体をシークする必要性が減り、シークにかかる時間が大幅に短縮されます。ほぼいっぱいのドライブでは、ディスク全体をシークする頻度が高くなり、シーク移動が大きく長くなるだけでなく、関連するデータを同じセクターに保持するのが難しくなり、ディスクのシークがさらに増加します。これを「シーク」と呼びます。断片化されたデータ。
ディスク領域を解放すると、デフラグ サービスによって断片化されたファイルがより迅速にクリーンアップされるだけでなく、ファイルがディスクの外側に移動されるため、平均シーク時間が短縮され、シーク時間が改善されます。
回転速度
ハード ドライブは固定速度で回転します (通常、コンピューターの場合は 5400 rpm または 7200 rpm、サーバーの場合は 10000 rpm または 15000 rpm)。また、1 ビットを保存するには、ドライブ上で一定量のスペース (多かれ少なかれ) が必要です。固定回転速度で回転するディスクの場合、ディスクの外側の線形速度はディスクの内側よりも速くなります。つまり、ディスクの外側の端に近いビットは、ディスクの中央に近いビットよりも高速で読み取りヘッドを通過します。そのため、読み取り/書き込みヘッドは、ディスクの内側よりも外側の端に近いビットをより高速に読み取りまたは書き込みできます。
ドライブがほぼ空の場合、ほとんどの時間をディスクの高速な外縁付近のビットへのアクセスに費やします。ドライブがほぼいっぱいの場合、より多くの時間をディスクの低速な内縁付近のビットへのアクセスに費やします。
繰り返しになりますが、ディスク領域を空にすると、デフラグ サービスによってデータがディスクの外側に移動され、読み取りと書き込みが高速化されるため、コンピューターの速度が向上します。
場合によっては、ディスクが読み取りヘッドに対して実際に速く動きすぎることがありますが、この影響は、外縁近くのセクターがずらされて、読み取りヘッドが追いつくことができるように順序が乱れて書き込まれるため軽減されます。しかし、全体的にはこれが当てはまります。
これら 2 つの効果は、ディスク コントローラが最初にディスクの高速部分にデータをグループ化し、必要なときまでディスクの低速部分を使用しないことに起因します。ディスクがいっぱいになると、ディスクの低速部分で費やされる時間がますます長くなります。
この効果は新しいドライブにも当てはまります。他の条件が同じであれば、新しい 1TB ドライブは新しい 200GB ドライブよりも高速です。これは、1TB はビットをより密集して保存し、内部トラックがすぐにいっぱいにならないためです。ただし、これを使用して購入の決定を下すのは、メーカーが 1TB のサイズに達するために複数のプラッターを使用したり、1TB システムを 200GB に制限するためにプラッターを小さくしたり、ソフトウェア/ディスク コントローラーの制限により 1TB プラッターを 200GB のスペースに制限したり、不良セクターが多数ある 1TB ドライブから部分的に完成または欠陥のあるプラッターを取り外したドライブを 200GB ドライブとして販売したりする可能性があるため、あまり役に立ちません。
その他の要因
ここで注目すべきは、上記の効果はかなり小さいということです。コンピュータハードウェアエンジニアは、これらの問題を最小限に抑える方法に多くの時間を費やしており、ハードドライブバッファ、スーパーフェッチキャッシュ、その他のシステムはすべて、問題を最小限に抑えるために機能します。健康十分な空き容量があるシステムでは、気付かない可能性も高くなります。また、SSD のパフォーマンス特性はまったく異なります。ただし、影響は存在し、ドライブがいっぱいになるとコンピューターの速度は確かに低下します。不健康ディスク容量が非常に少ないシステムでは、これらの影響により、ディスクが断片化されたデータを絶えず行き来するディスクスラッシング状態が発生する可能性があります。ディスク容量を解放すると、この状態が修正され、より劇的で顕著な改善がもたらされます。
さらに、ディスクにデータを追加すると、インデックス作成やAVスキャン、デフラグ処理などの他の特定の操作が実行されることになります。もっと以前と同じ速度またはそれに近い速度で実行している場合でも、バックグラウンドで動作します。
最後に、ディスクのパフォーマンスは巨大な最近の PC の全体的なパフォーマンスの指標... CPU 速度よりもさらに重要な指標です。ディスク スループットが少しでも低下すると、PC の全体的なパフォーマンスが低下したと感じられることがよくあります。これは、ハード ディスクのパフォーマンスが CPU やメモリの改良に追いついていないため特に当てはまります。7200 RPM ディスクは、10 年以上にわたってデスクトップの標準となっています。これまで以上に、従来の回転ディスクがコンピューターのボトルネックになっています。
答え4
長期間にわたり、回転する機械式ハードドライブにディスク容量がほとんどないコンピュータは、ファイルの断片化が進むにつれて、一般的に速度が低下します。断片化が進むと、読み取り速度が遅くなります。とても極端な場合には遅くなります。
コンピュータがこの状態になると、ディスク領域を解放しても問題は解決しません。ディスクのデフラグも必要になります。コンピュータがこの状態になる前に、領域を解放しても速度は上がりません。断片化が問題になる可能性が低くなるだけです。
これは、回転する機械式ハードドライブを搭載したコンピューターにのみ適用されます。断片化は SSD の読み取り速度にほとんど影響を与えないからです。