コンピュータとその動作についてさらに学ぶと、意味をなさないように思われることに遭遇することがあります。それを念頭に置いて、ディスクスペースを空にすることは実際にコンピュータをスピードアップしますか?今日のスーパーユーザーのQ&A投稿には、困惑した読者の質問に対する答えがあります。
今日の質疑応答セッションは、コミュニティ主導のQ&AWebサイトのグループであるStackExchangeの下位区分であるSuperUserの好意で行われます。
スクリーンショットの礼儀 砂(Flickr) 。
質問
スーパーユーザーリーダーのRemi.bは、ディスク領域を空にするとコンピューターの速度が上がるように見える理由を知りたがっています。
私はたくさんのビデオを見てきましたが、今ではコンピューターが少し良く機能する方法を理解しています。 RAMとは何か、揮発性メモリと不揮発性メモリ、およびスワッピングのプロセスについて理解しています。 RAMを増やすとコンピュータが高速化する理由も理解しています。
私が理解していないのは、ディスク領域をクリーンアップするとコンピュータの速度が上がるように見える理由です。それは本当にコンピュータをスピードアップしますか?もしそうなら、なぜそうするのですか?
それは、物を保存するためにメモリスペースを検索すること、または物を移動して何かを保存するのに十分な長さの連続スペースを作成することと関係がありますか?ハードディスクにどのくらいの空き容量を残しておく必要がありますか?
ディスクスペースを空にするとコンピュータの速度が上がるように見えるのはなぜですか?
答え
スーパーユーザーの寄稿者であるJasonCが答えを出しました。
「ディスク領域を空にするとコンピュータが高速化するのはなぜですか?」
少なくともそれ自体ではありません。これは本当に一般的な神話です。それが一般的な神話である理由は、ハードドライブがいっぱいになるのは、従来はコンピュータの速度を低下させる可能性のある他のことと同時に発生することが多いためです。 (A) 。 SSDのパフォーマンスは、いっぱいになると低下する傾向がありますが、これはSSDに固有の比較的新しい問題であり、カジュアルユーザーにはあまり目立ちません。一般的に、ディスクの空き容量が少ないのは単なる問題です。
たとえば、次のようなものです。
1。 ファイルの断片化。ファイルの断片化が問題です (B) 、しかし、空き領域の不足は、間違いなく多くの要因の1つですが、それだけが原因ではありません。ここでいくつかの重要なポイント:
- ファイルが断片化される可能性は ない ドライブに残っている空き容量に関連します。これらは、ドライブ上の空き領域の最大の連続ブロック(つまり、空き領域の「穴」)のサイズに関連しており、空き領域の量です。 たまたま上界と下界 。これらは、ファイルシステムがファイル割り当てを処理する方法にも関連しています( 以下の詳細 )。 考えてみましょう: 1つの連続したブロックにすべての空き領域がある95%のドライブは、新しいファイルをフラグメント化する可能性が0%です。 (C) (そして、追加されたファイルを断片化する可能性は、空き領域とは無関係です)。 5%がいっぱいであるが、データがドライブ全体に均等に分散しているドライブは、断片化する可能性が非常に高くなります。
- ファイルの断片化に注意してください 断片化されたファイルにアクセスしているときにのみパフォーマンスに影響します 。 考えてみましょう: まだたくさんの空き「穴」が残っている、最適化された素敵なドライブがあります。一般的なシナリオ。すべてがスムーズに実行されています。ただし、最終的には、空き領域の大きなブロックが残っていない状態になります。巨大な映画をダウンロードすると、ファイルがひどく断片化されてしまいます。 これはあなたのコンピュータを遅くしません 。以前は問題がなかったすべてのアプリケーションファイルなどが突然断片化されることはありません。これにより、ムービーのロードに時間がかかる場合があり(ただし、通常のムービーのビットレートはハードドライブの読み取りレートに比べて非常に低いため、ほとんど目立たない可能性があります)、ムービーのロード中のI / Oバウンドのパフォーマンスに影響を与える可能性があります。それ以外は何も変わりません。
- ファイルの断片化は確かに問題ですが、多くの場合、影響はOSおよびハードウェアレベルのバッファリングとキャッシュによって軽減されます。遅延書き込み、先読み、次のような戦略 プリフェッチャー Windowsなどでは、すべて断片化の影響を減らすのに役立ちます。あなたは一般的にしません 実際に 断片化が深刻になるまで、重大な影響が発生します(スワップファイルが断片化されていない限り、おそらく気付かないでしょう)。
2。 検索インデックスは別の例です。自動インデックス作成がオンになっていて、これを適切に処理しないOSがあるとします。インデックス作成可能なコンテンツ(ドキュメントなど)をコンピューターに保存する回数が増えると、インデックス作成にかかる時間が長くなり、I / OとCPU使用率の両方でコンピューターの実行中に認識される速度に影響を及ぼし始める可能性があります。 。これは空き容量とは関係ありません。インデックスに登録できるコンテンツの量と関係があります。ただし、空き領域が不足すると、コンテンツの保存量が増えるため、誤った接続が発生します。
3。 ウイルス対策ソフトウェア(検索インデックスの例と同様)。ドライブのバックグラウンドスキャンを実行するようにウイルス対策ソフトウェアが設定されているとします。スキャン可能なコンテンツが増えるにつれて、検索にはより多くのI / OおよびCPUリソースが必要になり、作業が妨げられる可能性があります。繰り返しますが、これはスキャン可能なコンテンツの量に関連しています。多くの場合、コンテンツが多いほど空き容量が少なくなりますが、空き容量が不足していることが原因ではありません。
4。 インストールされたソフトウェア。コンピュータの起動時に読み込まれるソフトウェアがたくさんインストールされているため、起動時間が遅くなっているとします。この速度低下は、多くのソフトウェアがロードされているために発生します。ただし、インストールされたソフトウェアはハードドライブのスペースを占有します。したがって、これが発生すると同時にハードドライブの空き容量が減少し、誤った接続が容易に行われる可能性があります。
5。 これらの線に沿った他の多くの例は、まとめると、 現れる 空き領域の不足とパフォーマンスの低下を密接に関連付けるため。
上記は、これがそのような一般的な神話である別の理由を示しています。空き領域の不足は速度低下の直接的な原因ではありませんが、さまざまなアプリケーションのアンインストール、インデックス付きまたはスキャンされたコンテンツの削除などがあります(常にではありません。この回答)は、残りの空き領域の量とは関係のない理由で、パフォーマンスを再び向上させます。しかし、これは当然、ハードドライブのスペースを解放します。したがって、ここでも、「より多くの空き領域」と「より高速なコンピューター」の間に明らかな(しかし誤った)接続を確立できます。
考えてみましょう: インストールされているソフトウェアがたくさんあるなどの理由でマシンの動作が遅い場合は、ハードドライブを(正確に)より大きなハードドライブに複製してから、パーティションを拡張して空き領域を増やしても、マシンが魔法のように高速化することはありません。同じソフトウェアが読み込まれ、同じファイルが同じ方法で断片化され、同じ検索インデクサーが実行され、空き容量が増えても何も変わりません。
「それは物事を節約するためにメモリスペースを探すことと関係がありますか?」
いいえ、違います。ここで注目に値する2つの非常に重要なことがあります。
1。 あなたのハードドライブは物を置く場所を見つけるために周りを検索しません。 あなたのハードドライブは愚かです。それは何でもありません。これはアドレス指定されたストレージの大きなブロックであり、OSが指示した場所に盲目的に物を置き、要求されたものをすべて読み取ります。最新のドライブには、時間の経過とともに得た経験に基づいてOSが何を要求するかを予測するように設計された高度なキャッシュおよびバッファリングメカニズムがあります(一部のドライブは、その上にあるファイルシステムを認識しています)が、基本的には、時折ボーナスパフォーマンス機能を備えた単なる大きなダムストレージとしてドライブします。
2。 オペレーティングシステムは、物を置く場所も検索しません。検索はありません。 ファイルシステムのパフォーマンスにとって重要であるため、この問題の解決には多くの努力が払われてきました。ドライブ上でデータが実際に整理される方法は、 ファイルシステム 。たとえば、FAT32(古いDOSおよびWindows PC)、NTFS(Windowsの最新版)、HFS +(Mac)、ext4(一部のLinuxシステム)などがあります。 「ファイル」と「ディレクトリ」の概念でさえ、典型的なファイルシステムの製品にすぎません。ハードドライブは、と呼ばれる謎の獣について何も知りません。 ファイル 。詳細はこの回答の範囲外です。ただし、基本的に、すべての一般的なファイルシステムには、使用可能なスペースがドライブのどこにあるかを追跡する方法があるため、通常の状況(つまり、正常なファイルシステム)では空きスペースを検索する必要はありません。例:
- NTFS があります マスターファイルテーブル 、特別なファイルが含まれています $ビットマップ 、など、およびドライブを説明する大量のメタデータ。基本的に、次の空きブロックがどこにあるかを追跡するため、毎回ドライブをスキャンしなくても、新しいファイルを空きブロックに直接書き込むことができます。
- もう一つの例: Ext4 いわゆる ビットマップアロケータ 、ext2およびext3を改善し、基本的に、空きブロックのリストをスキャンする代わりに、空きブロックがどこにあるかを直接判断するのに役立ちます。 Ext4もサポートしています 割り当ての遅延 つまり、断片化を減らすためにデータをどこに配置するかをより適切に決定するために、データをドライブに書き出す前にOSがRAMにデータをバッファリングします。
- 他の多くの例。
「それとも、物を動かして、何かを保存するのに十分な長さの連続したスペースを作るのですか?」
いいえ。少なくとも私が知っているファイルシステムでは、これは起こりません。ファイルは断片化されてしまいます。
「何かを保存するのに十分な長さの連続したスペースを作るために物を動かす」プロセスは、 デフラグ 。これは、ファイルが書き込まれるときには発生しません。これは、ディスクデフラグツールを実行したときに発生します。 Windowsの新しいエディションでは、少なくとも、これはスケジュールに従って自動的に行われますが、ファイルの書き込みによってトリガーされることはありません。
できる 避ける このように物事を移動することは、ファイルシステムのパフォーマンスの鍵であり、断片化が発生する理由であり、最適化が別のステップとして存在する理由です。
「ハードディスクにどのくらいの空き容量を残しておく必要がありますか?」
これは答えるのが難しい質問です(そしてこの答えはすでに小さな本になっています)。
経験則:
1。 すべてのタイプのドライブの場合:
- 最も重要なのは、十分な空き容量を残すことです。 コンピュータを効果的に使用する 。作業スペースが不足している場合は、より大きなドライブが必要になります。
- 多くのディスクデフラグツールは、動作するために最小限の空き領域を必要とします(Windowsを使用するツールは15%、最悪の場合必要だと思います)。他のものが再配置されるときに、断片化されたファイルを一時的に保持するためにこの空き領域を使用します。
- 他のOS機能のためにスペースを残してください。たとえば、マシンに多くの物理RAMがなく、動的サイズのページファイルで仮想メモリを有効にしている場合は、ページファイルの最大サイズに十分なスペースを残しておく必要があります。または、休止状態モードにしたラップトップがある場合は、休止状態ファイル用に十分な空き容量が必要になります。そういうもの。
2。 SSD固有:
- SSDは、最適な信頼性(および程度は低いですがパフォーマンス)のために、ある程度の空き領域を必要とします。これは、あまり詳細に説明することなく、ドライブ全体にデータを分散して、同じ場所への書き込みを常に回避するために使用します(摩耗します)。 。空き領域を残すというこの概念は、 オーバープロビジョニング 。大事です、 ただし、多くのSSDでは、必須のオーバープロビジョニングされたスペースがすでに存在します 。つまり、ドライブのGBは、OSに報告するよりも数十GB多いことがよくあります。ローエンドドライブでは、多くの場合、手動で離れる必要があります パーティション化されていない スペースですが、必須のOPを備えたドライブの場合、 空き容量を残す必要はありません 。ここで注意すべき重要なことは、 過剰にプロビジョニングされたスペースは、多くの場合、パーティション化されていないスペースからのみ取得されます 。したがって、パーティションがドライブ全体を占有し、その上に空き領域を残した場合、それはしません。 常に カウント。多くの場合、手動のオーバープロビジョニングでは、パーティションをドライブのサイズよりも小さくする必要があります。詳細については、SSDのユーザーマニュアルを確認してください。 TRIMやガベージコレクションなどにも効果がありますが、これらはこの回答の範囲外です。
個人的には、空き容量が約20〜25%残っているときに、通常は大きなドライブを使用します。これはパフォーマンスとは関係ありません。その時点で、データ用のスペースがすぐに不足する可能性があり、より大きなドライブを入手するときが来たと思います。
空き領域を監視するよりも重要なのは、スケジュールされた最適化が適切な場所で有効になっていることを確認することです(SSDではない)。
最後に言及する価値のあることが1つあります。ここでの他の回答の1つは、SATAの半二重モードでは読み取りと書き込みを同時に行うことができないと述べています。確かに、これは非常に単純化されており、ここで説明しているパフォーマンスの問題とはほとんど関係ありません。これが意味するのは、単純に、データを両方向に転送できないということです。 ワイヤー上 同時に。ただし、SATAには かなり複雑な仕様 小さな最大ブロックサイズ(ワイヤ上のブロックあたり約8kB)、読み取りおよび書き込み操作キューなどが含まれ、読み取りの進行中に発生するバッファへの書き込み、インターリーブ操作などが妨げられません。
発生するブロッキングは、物理リソースの競合が原因であり、通常は大量のキャッシュによって軽減されます。ここでは、SATAのデュプレックスモードはほとんど関係ありません。
(A) 「スローダウン」は広義の用語です。ここでは、I / Oバウンド(つまり、コンピューターが数値を計算している場合、ハードドライブの内容は影響を与えません)またはCPUバウンドであり、接線方向に関連するものと競合するものを指します。 CPU使用率(つまり、大量のファイルをスキャンするウイルス対策ソフトウェア)。
(B) SSDは、機械デバイスと同じ制限に直面していないにもかかわらず、シーケンシャルアクセス速度が一般にランダムアクセスよりも速いという点で断片化の影響を受けます(それでも、断片化の欠如は、ウェアレベリングなどによるシーケンシャルアクセスを保証しません)。ただし、事実上すべての一般的な使用シナリオでは、これは問題ではありません。 SSDでの断片化によるパフォーマンスの違いは、通常、アプリケーションのロード、コンピューターの起動などではごくわずかです。
(C) 意図的にファイルを断片化していない正常なファイルシステムを想定しています。
以下のリンクから、SuperUserでの活発なディスカッションの残りの部分を必ずお読みください。
説明に追加するものがありますか?コメントで音を立ててください。他の技術に精通したStackExchangeユーザーからの回答をもっと読みたいですか? ここで完全なディスカッションスレッドをチェックしてください 。