
NTFS 圧縮は CPU 使用率が高くなるためパフォーマンスが低下すると聞いたことがありますが、ディスク読み取りが減るため実際にはパフォーマンスが向上する可能性があるという報告も読みました。NTFS 圧縮はシステム パフォーマンスにどのような影響を与えるのでしょうか。
ノート:
- 私は 5400 RPM ハード ドライブを搭載したラップトップを使用していますが、そのラップトップで行う作業の多くは I/O に依存しています。
- プロセッサは、2.0GHzで動作する4つのコアを備えたAMD Phenom IIです。
- システムは定期的にデフラグされますウルトラデフラグ。
- ワークロードは読み取りと書き込みが混在しており、読み取りは書き込みよりもやや頻繁に発生します。
- 圧縮されるファイルには、選択された個人用ドキュメントのサブセット (ホーム フォルダー全体ではない) とプログラム (いくつかの (それほど要求の厳しくない) ゲームや Visual Studio (多くの場合、I/O バウンドになる傾向がある) など) が含まれます。
答え1
NTFS 圧縮により CPU 使用率が高くなりパフォーマンスが低下する可能性があると聞いたことがありますが、ディスク読み取りが減るため実際にはパフォーマンスが向上する可能性があるという報告も読んだことがあります。
正解です。CPU が何らかの圧縮アルゴリズムを使用して C MB/秒で圧縮し、D MB/秒で解凍でき、ハード ドライブの書き込み速度が W、読み取り速度が R であると仮定します。C > W である限り、書き込み時にパフォーマンスが向上し、D > R である限り、読み取り時にパフォーマンスが向上します。これは書き込みの場合に極端な仮定です。なぜなら、Lempel-Ziv のアルゴリズム (ソフトウェアで実装されている) の圧縮率は非決定論的であるためです (ただし、辞書のサイズが制限されることがあります)。
NTFS 圧縮はシステム パフォーマンスにどのような影響を与えるのでしょうか?
そうです、それはまさに上記の不等式に頼ることです。CPUがHDDの書き込み速度を上回る圧縮/解凍速度を維持できる限り、速度の向上を実感できるはずです。ただし、これは大きなファイルには影響し、アルゴリズムにより大きな断片化が発生する場合があります。全く圧縮されない。
これは、圧縮が進むにつれて Lempel-Ziv アルゴリズムの速度が低下するためと考えられます (辞書が大きくなり続け、ビットが増えるにつれてより多くの比較が必要になるため)。Lempel-Ziv アルゴリズムでは、ファイル サイズに関係なく、解凍の速度はほぼ常に同じです (辞書はベース + オフセット スキームを使用してアドレス指定できるため)。
圧縮はファイルの保存方法にも影響しますディスク上にレイアウトデフォルトでは、1 つの「圧縮単位」はクラスターのサイズの 16 倍です (したがって、ほとんどの 4 kB クラスター NTFS ファイルシステムでは、ファイルを格納するために 64 kB のチャンクが必要になります)。ただし、64 kB を超えて増加することはありません。ただし、これはディスク上の断片化とスペース要件に影響を与える可能性があります。
最後に、レイテンシは議論すべきもう 1 つの興味深い値です。データの圧縮にかかる実際の時間によってレイテンシが発生しますが、CPU クロック速度がギガヘルツ (つまり、各クロック サイクルが 1 ns 未満) の場合、発生するレイテンシはハード ドライブのシーク レート (ミリ秒単位、つまり数百万クロック サイクル) と比較すると無視できるほど小さくなります。
実際に速度が向上するかどうかを確認するには、いくつかの方法があります。まず、Lempel-Ziv ベースの圧縮/解凍アルゴリズムを使用してシステムをベンチマークします。良好な結果が得られた場合 (つまり、C > W および D > R)、ディスクの圧縮を有効にしてみてください。
そこから、実際のハード ドライブのパフォーマンスに関するベンチマークをさらに実行する必要があるかもしれません。本当に重要なベンチマーク (あなたの場合) は、ゲームの読み込み速度と Visual Studio プロジェクトのコンパイル速度を確認することです。
TL,DR: 圧縮かもしれない高いスループットと低いレイテンシを必要とする多数の小さなファイルを利用するファイルシステムに適しています。パフォーマンスとレイテンシの問題により、大きなファイルは影響を受けません (影響を受けるべきではありません)。
答え2
NTFS に関する Wikpedia のエントリで説明しました:
NTFS は LZNT1 アルゴリズム (LZ77 [23] の変種) を使用してファイルを圧縮できます。ファイルは 16 クラスターのチャンクに圧縮されます。4 kB クラスターの場合、ファイルは 64 kB チャンクに圧縮されます。圧縮によって 64 kB のデータが 60 kB 以下に削減されると、NTFS は不要な 4 kB ページを空のスパース ファイル クラスターのように扱い、書き込まれません。これにより、ランダム アクセス時間が不合理になりません。ただし、圧縮可能な大きなファイルは、64 kB チャンクごとに小さなフラグメントになるため、非常に断片化されます。[24][25] パフォーマンスが低下するため、Microsoft は 30 MB を超えるファイルの圧縮を推奨していません。[要出典]
圧縮は、繰り返し使用され、めったに書き込まれず、通常は順番にアクセスされ、それ自体は圧縮されていないファイルに使用するのが最適です。ログ ファイルは理想的な例です。4 KB 未満のファイルや既に圧縮されているファイル (.zip、.jpg、.avi など) を圧縮すると、サイズが大きくなり、速度も低下する可能性があります。[引用が必要] ユーザーは、.exe や .dll などの実行可能ファイルの圧縮を避ける必要があります (4 KB のページでページインおよびページアウトされる可能性があります)。起動時に使用されるドライバー、NTLDR、winload.exe、BOOTMGR などのシステム ファイルを圧縮すると、システムが正常に起動しなくなる可能性があります。[26]
圧縮ファイルへの読み書きアクセスは透過的であることが多いが、常に透過的であるとは限らない[27]。Microsoftは、プロセッサにかなりの負荷をかけるため、サーバーシステムやローミングプロファイルを保持するネットワーク共有での圧縮を避けることを推奨している[28]。
ハードディスクの容量が限られているシングルユーザーシステムでは、圧縮率に応じて4kBから64kB以上の小さなファイルに対してNTFS圧縮が役立ちます。900バイト未満のファイルは、MFTのディレクトリエントリに保存されます。[29]
コンピュータ内で最も遅いリンクはCPUではなくハードドライブの速度であるため、NTFS圧縮により、限られた低速のストレージスペースを、スペースと(多くの場合)速度の両方の点でより有効に活用できます。[30](これは、圧縮されたファイルのフラグメントが連続して保存されていることを前提としています。)
圧縮は、64KB 以下 (つまり 1 個) に圧縮できるファイルのみに推奨します。そうでない場合、ファイルは 64K 以下の多数の断片で構成されることになります。
MyDefrag はデフラグをよりうまく行います。
答え3
ディスクの速度がかなり遅いので、あなたの質問には一理あります。NTFS 圧縮はプロセッサを集中的に使用し、圧縮効率よりも速度を重視して調整されています。
読み取り操作では (非常に) わずかな改善が見られると思います。ただし、システム キャッシュにあるファイルにアクセスする場合は、アクセスのたびに再度解凍する必要があるため、パフォーマンスが低下します。
もちろん、追加の圧縮により書き込み操作が遅くなることはわかります。
この同じ NTFS ディスク上のファイルをコピーするには、解凍と圧縮が必要になるため、これらが最も影響を受けます。
NTFS 圧縮によって断片化が大幅に増加する可能性もありますが、これは「一般的な」作業負荷がかかっているほとんどの「一般的な」コンピューターでは問題になりません。
JPEG 画像やビデオ、.zip ファイルなど、多くの種類のファイルは基本的に圧縮できないため、これらのファイルを使用すると速度が遅くなり、スペースも節約されません。
1 つのディスク クラスター (通常 4K) より小さいファイルは圧縮されません。圧縮してもメリットがないためです。ただし、ボリューム全体を圧縮する場合は、さらに小さいクラスター サイズが推奨されることがあります。
NTFS 圧縮は、比較的静的なボリュームまたはファイルに推奨されます。システム ファイルやユーザー フォルダーには推奨されません。
ただし、ハードウェア構成はディスク、バス、RAM、CPU に応じてコンピュータ モデルごとに異なるため、圧縮がコンピュータ モデルにどのような影響を与えるかはテストしてみなければわかりません。
答え4
今日これを見た人は誰でも、ビデオ ゲームの場合、定期的にパッチが当てられているゲームであっても、ドライブまたはフォルダーの圧縮を有効にすると、今日の低速の CPU や SSD (ほとんどの人が持っていない最速のもの以外) でも、ロード時間が短縮される可能性があることに気付くはずです。ただし、定期的にデフラグする必要があります。Perfect Disk の購入を強くお勧めします。「スマート アグレッシブ」デフラグを使用したら、圧縮後に自動断片化防止機能を有効にしたままにしておくと、アクティビティを監視し、パフォーマンスへの影響をほとんどまたはまったく与えずに、断片化を回避するために自動的に最適化されます (実際、最近、最新の Windows で AMD と Intel の両方の古い第 1 世代クアッドまでさかのぼってこれをテストしました)。
多くのゲーム ファイルは驚くほど圧縮されますが、ゲームによっては、ほとんどが空白であるにもかかわらず、ディスク領域を占有するファイルがあります...しばらく前に圧縮したあるゲームは、フォルダーの 1 つで 6 GB から 16 MB 未満になりました... (冗談だったらよかったのですが...無駄なスペースと無駄な I/O について話します...)
しばらく前に友人の Steam フォルダを圧縮したのですが、圧縮に 4 日かかりました (4TB のドライブにあり、最初は 3/4 がいっぱいでした)。圧縮が終わったとき、彼はドライブ全体の約 1/3 を使っていました。デフラグにはさらに 1 日かかりました (ただし、複数の MMO や大量の Steam/Uplay/Origin などのゲームが入っているにもかかわらず、彼は一度もデフラグを実行したことがなかったため、最初はひどく断片化されていました)。
写真/画像フォルダを圧縮しないでください。圧縮しても何の役にも立ちませんし、低速システムではアクセスが遅くなるだけです (ただし、1/2 程度の性能のリグでは気付かないでしょう...)
私は、NT4 以降のすべてのシステムでドライブを圧縮してきましたが、圧縮による弊害がメリットを上回るフォルダーについては、選択的に解凍します。これは、ゲーマー、オタク、「IT」ガイ (この言葉が存在する以前) として昔考え出された「ベスト プラクティス」であり、今でもその通りです。正直なところ、ドライブ/データを圧縮するためのより微調整された方法があればいいのにと思います。以前は、無料ではないものの手頃な価格のツールがあり、圧縮すべきでないデータを圧縮することなく、はるかに優れた圧縮結果を得ることができました...
とにかく、多くの古いデュアル コア システムでも、1. ccleaner を実行する、2. 管理者特権のコマンド プロンプトから chkdsk /f を実行する (y と入力して再起動し、チェックを実行させる)、3. ドライブを圧縮する、4. mydefrag またはより優れた perfect disk を使用してデフラグする (これには時間がかかります)、5. 大きなファイルや画像/その他のコンテンツを含むフォルダーがあり、圧縮がうまくいかないかまったく圧縮できない場合は、フォルダーまたはファイルだけを解凍する、私の経験では、プロセスのこの部分の後でデフラグする必要はほとんどありませんが、確認することをお勧めします。
圧縮に反対する人がいるのは理解できますが、テストしたところ、SSD や HDD、特に低速の古い HDD や SSD を適切に使用すれば、圧縮はスペースの節約だけでなくパフォーマンスの向上にも大きく役立ちます。ほとんどの古いデュアル コアでも、平均的な圧縮/解凍サイクルをそれらのシステムのドライブの移動速度よりも速く処理できます。テストしたところ、第 1 世代の安価な旧設計の SSD は、ほとんどの場合、低速の HDD ほどではありませんが、圧縮のメリットを享受できます。しかし、友人がネットブックを持っていますが、非常に低速で交換が難しい SSD と、はるかに交換が簡単でアクセスしやすい SSD スロットが搭載されています。しかし、この愚かな装置は、もう 1 つの SSD を物理的に取り外さないと、追加した SSD から起動できません... (BIOS はひどいですが...ユニットの内容を考えると、実際には素晴らしく、見た目よりも強力です...低速の SSD を除けば、それにアクセスするには全体を分解する必要があります...)。そのドライブを圧縮し、Windows と最も基本的なアプリ (Office など) を低速の SSD に入れると、読み取り/書き込みでも実際には速度が上がりました。これは、CPU が結局は SSD を待つことになるためです。彼がインストールした高速な SSD ではそうはなりません。私は、ブート ローダーを内部 SSD に、OS を追加したものに置くことを提案しましたが、彼は、そのほとんどをページ ファイルに使用して、最終的にこの愚かなデバイスを破壊しようとしているようです... (128 GB ですが、信じられないほど遅いです。書き込み速度がもっと速い USB3 フラッシュ ドライブを持っているのと同じです...そのすべては、Newegg/Amazon でセール中です...)
少なくともゲーム ドライブ/フォルダーを圧縮することを強くお勧めします...高速システムでも大きな違いが生じる可能性があります!!!