
非公式の (つまりジャーナリズムの) テクノロジー プレスや、オンラインのテクノロジー ブログやディスカッション フォーラムでは、ハード ディスク ドライブやソリッド ステート ドライブにある程度空き容量を残しておくようにという逸話的なアドバイスをよく目にします。これにはさまざまな理由が挙げられますが、まったく理由がない場合もあります。そのため、これらの主張は、実際には妥当かもしれませんが、神話的な雰囲気を漂わせています。たとえば、次のようになります。
-
「ディスクの容量が80%になったら、満杯、すぐに削除するかアップグレードする必要があります。90%完全に燃え尽きてしまったら、自分のズボンが本当に燃えていると考え、適切な速さで反応してそれを解決する必要があります。ソース。
-
「ガベージコレクションを最高の効率で実行し続けるには、ドライブの 20 ~ 30 パーセントを空のままにしておくことが従来のアドバイスです。」ソース。
-
「パフォーマンスを向上させるには、HDD に約 20% の空き容量を残しておく必要があると言われています。HDD は、空き容量がいっぱいに近づくと、速度が著しく低下します。」ソース。
-
「スワップ ファイルと一時ファイル用のスペースを残しておく必要があります。現在、空き容量は 33% 残しており、HDD の空き容量が 10 GB を下回らないようにすることを誓います。」ソース。
-
「通常は 15% ですが、最近のハード ドライブの容量を考えると、一時ファイルとスワップ ファイルに十分な容量があれば、技術的には安全です。」ソース。
-
「Windows では 10% 以上をお勧めします。実行時にドライブにその程度の空き容量がないとデフラグが実行されないからです。」ソース。
-
「断片化を避けるために、通常は約 10% を空けておく必要があります。」ソース。
-
「ドライブの使用量が常に 75 パーセントまたは 80 パーセントを超える場合は、より大きな SSD へのアップグレードを検討する価値があります。」ソース。
オペレーティングシステム、ファイルシステム、ストレージ技術(磁気ディスクとソリッドステートなど)の特定の組み合わせで必要な空き容量の割合または絶対量についての研究(できれば査読付きジャーナルに掲載)はありましたか?(理想的には、そのような研究では、たとえばシステムの空き容量が不足するのを防ぐために、特定の使用済み容量を超えないようにする理由も説明されている必要があります。スワップスペース、またはパフォーマンスの低下を回避するために使用します。
もしそのような研究をご存知でしたら、そのリンクと調査結果の簡単な概要を添えてご回答いただければ幸いです。よろしくお願いします!
答え1
できれば査読付きの学術雑誌に掲載された研究はありますか?[…]
これについては、システム管理やその他の分野では 20 年以上も前に遡る必要があります。これは、少なくともパーソナル コンピュータとワークステーションのオペレーティング システムの世界では、30 年以上前にホットな話題でした。BSD の人々が Berkeley Fast File System を開発し、Microsoft と IBM が High Performance File System を開発していた時代です。
両方の作成者による文献では、これらのファイルシステムがどのように編成されたかについて議論されており、ブロック割り当てポリシー連続するファイル ブロックを連続させることで、パフォーマンスが向上しました。これについて、また、ブロックを割り当てるために残された空き領域の量と場所がブロックの配置、ひいてはパフォーマンスに影響を与えるという事実については、このテーマに関する最近の記事で説明されています。
たとえば、Berkeley FFS のブロック割り当てアルゴリズムの説明から、現在のシリンダ グループとセカンダリ シリンダ グループに空き領域がなく、アルゴリズムが第 4 レベルのフォールバック (「すべてのシリンダ グループに徹底的な検索を適用する」) に達した場合、ディスク ブロックの割り当てのパフォーマンスが低下し、ファイルの断片化 (したがって読み取りパフォーマンス) も低下することがかなり明らかになります。
過去 30 年間に受け継がれてきた知恵は、これらの分析や同様の分析 (当時のファイルシステム設計のレイアウト ポリシーを改善することを目的とした唯一のファイルシステム設計ではありません) に基づいています。
たとえば、オリジナルの論文では、FFS ボリュームは 90% 未満に抑えておかないとパフォーマンスが低下してしまうと述べられていましたが、これは作成者による実験に基づいており、今世紀に出版された Unix ファイルシステムに関する書籍でも無批判に繰り返されています(例: Pate2003 p. 216)。これに疑問を呈する人はほとんどいませんが、Amir H. Majidimehr は前世紀に実際にこれを指摘し、xe では実際には目立った効果は見られなかったと述べています。これは、最後の 10% をスーパーユーザー用に確保するという Unix の慣習的なメカニズムによるもので、90% いっぱいのディスクは、スーパーユーザー以外のユーザーにとっては実質的に 100% いっぱいであることを意味します。ともかく (Majidimehr1996 p. 68)。 Bill Calkins も同様で、21 世紀のディスク サイズでは、実際には 99% まで使用してから、空き領域が少ないことによるパフォーマンスへの影響を観察できると示唆しています。これは、最新サイズのディスクの 1% でも、断片化されていない空き領域が大量に残っており、十分に活用できるからです(Calkins2002 p. 450)。
これは、常識がいかにして間違いになるかを示す例です。他にもこの例があります。SCSIとATAの世界が論理ブロックアドレスそしてゾーンビット記録むしろ、慎重な計算をすべて窓から投げ捨ててしまった回転待ち時間BSD ファイルシステムの設計では、SSD の物理的なメカニズムによって、Winchester ディスクに適用される空き領域の常識が無視されることになります。
SSDの場合、空き容量はデバイス全体つまり、ディスク上のすべてのボリュームにわたってそしてその間には、パフォーマンスと寿命の両方に影響を及ぼします。また、連続した論理ブロック アドレスを持つブロックにファイルを格納する必要があるという考えの根底は、SSD には回転するプラッターやシークするヘッドがないという事実によって揺らぎます。ルールが再び変わります。
SSDの場合、推奨される最小空き容量は実際にはもっと33年前のウィンチェスターディスクとバークレーFFSの実験から得られた従来の10%よりも大きい。例えば、アナンド・ラル・シンピは25%としている。この差は、これが自由空間でなければならないという事実によってさらに大きくなる。デバイス全体にわたって一方、10%という数字は各FFSボリューム内したがって、パーティション テーブルによって有効なディスク ボリュームに割り当てられていないすべての領域を TRIM する必要があることをパーティション プログラムが認識しているかどうかによって影響を受けます。
また、空き領域をTRIMできるTRIM対応ファイルシステムドライバなどの複雑さも加わります。内でディスク容量、そしてSSDメーカー自身もすでにさまざまな程度の割り当て予約スペースガベージコレクションやウェアレベリングなどのさまざまな用途で、デバイス外部(つまりホスト)からは見えません。
文献
- マーシャル・K・マキュージック、ウィリアム・N・ジョイ、サミュエル・J・レフラー、ロバート・S・ファブリー(1984-08)。 UNIX 用の高速ファイルシステム. ACM Transactions on Computer Systems. 第2巻第3号。pp.181–197。cornell.eduにアーカイブされています。
- レイ・ダンカン(1989-09)。新しい高性能ファイルシステムの設計目標と実装。 マイクロソフト システム ジャーナル第4巻第5号。pp. 1–13。wisc.eduにアーカイブされています。
- Marshall Kirk McKusick、Keith Bostic、Michael J. Karels、および John S. Quarterman (1996-04-30)。「Berkeley Fast Filesystem」。4.4 BSD オペレーティングシステムの設計と実装. アディソン・ウェズリー・プロフェッショナル。ISBN 0201549794。
- ダン・ブリッジス(1996-05)。高性能ファイルシステムの内部 — パート 4: 断片化、ディスクスペース ビットマップ、コード ページ. 重要なビット。OS/2 の Electronic Developer Magazine にアーカイブされています。
- キース・A・スミスとマーゴ・セルツァー(1996年)。 FFS ディスク割り当てポリシーの比較USENIX 年次技術会議の議事録。
- Steve D. Pate (2003)。「FFS のパフォーマンス分析」 UNIX ファイルシステム: 進化、設計、実装. John Wiley & Sons. ISBN 9780471456759.
- アミール・H・マジディメア(1996年)。UNIX のパフォーマンスを最適化する. プレンティスホール。ISBN 9780131115514。
- Bill Calkins (2002) 「ファイル システムの管理」 Solaris 9の内部。 Que出版。 9780735711013.
- アナンド・ラル・シンピ(2012-10-04)。最新の SSD におけるスペア領域とパフォーマンスの一貫性の関係を探る. アナンドテック。
- ヘンリー・クック、ジョナサン・エリソープ、ローラ・キーズ、アンドリュー・ウォーターマン (2010)。IotaFS: SSD のファイルシステム最適化の検討IEEE Transactions on Consumer Electronics。stanford.edu にアーカイブされています。
- https://superuser.com/a/1081730/38062
- アクセラ・チャオ(2017-04-10)。SSD と FTL の概要。 github.io から。
- Windows は SSD 上のパーティション化されていない (フォーマットされていない) 領域をトリミングしますか?
答え2
「査読付きジャーナル」に掲載されている「研究」について話すことはできませんし、日々の仕事でそれらに頼りたくもありませんが、長年にわたってさまざまな OS で稼働している数百台の運用サーバーの現実について話すことはできます。
ディスクがいっぱいになるとパフォーマンスが低下する理由は 3 つあります。
- 空き領域の不足: 一時ファイルや更新などを考慮してください。
- ファイルシステムの劣化: ほとんどのファイルシステムは、十分なスペースがない場合、ファイルを最適に配置する能力が低下します。
- ハードウェア レベルの劣化: 十分な空き容量がない SSD および SMR ディスクでは、スループットが低下し、さらに悪いことに、レイテンシが増加します (場合によっては桁違いに増加します)。
最初の点は些細なことです。特に、正常な運用システムでは、動的に拡大および縮小するファイルにスワップ領域を使用することはありません。
2 番目のポイントは、ファイル システムとワークロードによって大きく異なります。混合ワークロードの Windows システムの場合、70% のしきい値は十分に使用可能であることがわかります。少数だが大きなファイル (ビデオ ブロードキャスト システムなど) を含む Linux ext4 ファイル システムの場合、このしきい値は 90% 以上に上がる可能性があります。
3 番目のポイントはハードウェアとファームウェアに依存しますが、特に Sandforce コントローラーを搭載した SSD は、書き込み負荷が高い場合に空きブロックの消去にフォールバックし、書き込み待ち時間が数千パーセント増加する可能性があります。通常、パーティション レベルで 25% を空きのままにしておき、80% 未満の充填率を確認します。
推奨事項
私は言ったことに気付きました方法最大充填率が強制されていることを確認してください。いくつかのランダムな考えは、いずれも「ピアレビュー」されたもの (有料、偽造、または本物) ではなく、すべて実稼働システムからのものです。
- ファイルシステムの境界を使用します。
/var
ルートファイルシステムに属しません。 - 監視、監視、監視。既成のソリューションが適している場合はそれを使用し、適していない場合は出力を解析して
df -h
、万が一に備えて警告ベルを鳴らします。これにより、自動アップグレードがインストールされ、自動削除オプションなしで実行されているルート ファイルシステム上の 30 個のカーネルを節約できます。 - そもそも、ファイルシステムのオーバーフローによる潜在的な混乱と、ファイルシステムを大きくするコストを比較検討してください。組み込みデバイスを使用していない場合は、ルート用に 4G を 2 倍にすればよいでしょう。
答え3
オペレーティング システム、ファイル システム、およびストレージ テクノロジの特定の組み合わせに必要な空き領域の割合または絶対量についての研究は行われましたか?
システム管理に携わって 20 年になりますが、さまざまな構成の空き容量要件を詳細に説明した調査に出会ったことはありません。これは、コンピューターの構成が非常に多様であるため、考えられるシステム構成の数が非常に多いため、調査が難しいためだと思われます。
システムに必要な空き容量を決定するには、次の 2 つの変数を考慮する必要があります。
望ましくない行動を防ぐために必要な最小限のスペース、それ自体は流動的な定義を持つ可能性があります。
この定義だけで必要な空きスペースを定義するのは役に立たないことに注意してください。これは、レンガの壁に向かって時速 80 マイルで運転しても、壁に衝突するまでは安全であると言っているのと同じだからです。
ストレージの消費速度、管理者が対応する時間がないうちにシステムのパフォーマンスが低下しないように、追加の可変量のスペースを予約する必要があります。
OS、ファイルシステム、基盤となるストレージ アーキテクチャ、アプリケーションの動作、仮想メモリ構成などの特定の組み合わせにより、明確な空き領域要件を提供しようとする人にとっては非常に困難な課題が生じます。
だからこそ、世の中にはたくさんの「ヒント」となるアドバイスがあふれています。その多くは、特定の構成に関する推奨事項を述べていることに気づくでしょう。たとえば、「容量に近づくとパフォーマンスの問題が発生する SSD を使用している場合は、空き容量を 20% 以上保ってください。」
この質問には簡単な答えがないので、正しいアプローチを特定するためにあなたのシステムの最小空き容量要件は、システムの特定の構成に照らしてさまざまな一般的な推奨事項を考慮し、しきい値を設定して監視し、必要に応じて調整することです。
または、少なくとも 20% の空き領域を確保しておくこともできます。もちろん、SSD と従来のハード ディスクの組み合わせと事前に割り当てられたスワップ ファイルでバックアップされた 42 TB の RAID 6 ボリュームがある場合は別ですが... (これは真面目な人向けのジョークです)。
答え4
SSD の場合、書き換え率が上昇してディスクの書き込みパフォーマンスに悪影響を与えるため、いくらかのスペースを残しておく必要があります。80% の使用率はおそらくすべての SSD ディスクにとって安全な値であり、一部の最新モデルでは 90% から 95% の容量が使用されていても正常に動作する場合があります。
https://www.howtogeek.com/165542/why-solid-state-drives-slow-down-as-you-fill-them-up/