スワップサイズはいくらですか?スワップはRAMサイズの2倍にする必要がありますか、それともRAMサイズの半分にする必要がありますか?システムに数GBのRAMがある場合、スワップは必要ですか?
おそらく、これらはLinuxのインストール中にスワップサイズを選択する際に最もよく聞かれる質問です。
それは新しいことではありません。スワップサイズに関しては常に多くの混乱がありました。
長い間、推奨されるスワップサイズはRAMサイズの2倍でしたが、そのゴールデンルールは現在のコンピューターには適用されなくなりました。最大128GBのRAMサイズのシステムがありますが、多くの古いコンピュータにはこれほど多くのハードディスクさえありません。
しかし、32 GBのRAMを搭載したシステムにどのスワップサイズを割り当てますか? 64GB?それはハードディスクのばかげた無駄になるでしょうね?
必要なスワップサイズを確認する前に、まずスワップメモリについて1つか2つ知っておきましょう。これは、スワップが使用される理由を理解するのに役立ちます。
説明は(ほぼ)すべての人が理解できるように簡略化されています。
スワップとは何ですか?スワップはいつ使用されますか?
システムは、アプリケーションを実行するときにランダムアクセスメモリ(別名RAM)を使用します。システムを実行しているアプリケーションが少数しかない場合は、使用可能なRAMで管理します。
ただし、実行中のアプリケーションが多すぎる場合、またはアプリケーションに大量のRAMが必要な場合は、システムに問題が発生します。アプリケーションがより多くのメモリを必要としているが、RAM全体がすでに使用されている場合、アプリケーションはクラッシュします。
RAMが使い果たされると、スワップはシステムのブリーザーとして機能します。ここで何が起こるかというと、RAMが使い果たされると、Linuxシステムはハードディスクメモリの一部を使用し、それを実行中のアプリケーションに割り当てます。
かっこいいですね。つまり、50 GBのスワップサイズを割り当てると、システムで数百または数千のアプリケーションを同時に実行できるということですか?間違っています!
ほら、ここでは速度が重要です。ナノ秒のオーダーのRAMアクセスデータ。 SSDはマイクロ秒単位でデータにアクセスしますが、通常のハードディスクはミリ秒単位でデータにアクセスします。これは、RAMがSSDの1000倍、通常のHDDの100,000倍高速であることを意味します。
アプリケーションがスワップに依存しすぎると、RAMと同じ速度でデータにアクセスできないため、パフォーマンスが低下します。そのため、タスクに1秒かかる代わりに、同じタスクを完了するのに数分かかる場合があります。それはアプリケーションをほとんど役に立たないままにします。これは、コンピューティング用語ではスラッシングとして知られています。
言い換えれば、少しの交換が役に立ちます。その多くは役に立たないでしょう。
なぜスワップが必要なのですか?
スワップが必要になる理由はいくつかあります。
- システムのRAMが1GB未満の場合、ほとんどのアプリケーションはすぐにRAMを使い果たすため、スワップを使用する必要があります。
- システムでビデオエディタなどのリソースを大量に消費するアプリケーションを使用している場合は、RAMがここで使い果たされる可能性があるため、スワップスペースを使用することをお勧めします。
- 休止状態を使用する場合は、RAMの内容がスワップパーティションに書き込まれるため、スワップを追加する必要があります。これは、スワップサイズが少なくともRAMのサイズでなければならないことも意味します。
- プログラムがおかしくなり、RAMを食べるなどの奇妙なイベントは避けてください。
RAMがたくさんある場合、スワップが必要ですか?
これは確かに良い質問です。 32GBまたは64GBのRAMがある場合、システムがRAM全体を使用することはおそらくないため、スワップパーティションを使用することはない可能性があります。
しかし、あなたはチャンスをつかみますか?システムに32GBのRAMがある場合、数百GBのハードディスクもあるはずです。数GBのスワップを割り当てても問題はありません。障害のあるプログラムがRAMの誤用を開始した場合、「安定性」の追加レイヤーを提供します。
スワップなしでLinuxを使用できますか?
はい、できます。特に、システムに十分なRAMがある場合は可能です。ただし、前のセクションで説明したように、常に少しのスワップをお勧めします。
実際、Ubuntuのようなディストリビューションは、サイズが2GBのスワップファイルを自動的に作成します。これにより、ある程度のスワップスペースが推奨されていることがわかります。
Linuxのインストール中にスワップパーティションを作成しなくても心配する必要はありません。 Linuxではいつでもスワップファイルを作成できます。
推奨読書
スワップファイルを使用すると、Linuxでその場でスワップスペースを作成して使用できます。必要に応じて、簡単に作成、サイズ変更、削除できます。
Linuxでのスワップファイルについて学ぶスワップサイズはどのくらいにする必要がありますか?
ここで大きな問題が発生します。 Linuxインストールの理想的なスワップスペースは何ですか?
そして、ここでの問題は、このスワップサイズの質問に対する明確な答えがないことです。ただの推奨事項があります。
理想的なスワップサイズについては、人によって意見が異なります。主要なLinuxディストリビューションでさえ、同じスワップサイズのガイドラインはありません。
Red Hatの提案に従うと、最新のシステムではRAMの20%のスワップサイズ(つまり、4GB以上のRAM)を推奨しています。
CentOSには、スワップパーティションサイズに関する別の推奨事項があります。スワップサイズは次のようになります。
- RAMが2GB未満の場合はRAMの2倍のサイズ
- RAMのサイズ+RAMのサイズが2GBを超える場合は2GB、つまり3GBのRAMに対して5GBのスワップ
Ubuntuは、休止状態を考慮しているため、スワップサイズに関してまったく異なる見方をしています。休止状態が必要な場合は、UbuntuでRAMのサイズを交換する必要があります。
それ以外の場合は、次のことをお勧めします:
- RAMが1GB未満の場合、スワップサイズはRAMのサイズ以上でRAMのサイズの最大2倍にする必要があります
- RAMが1GBを超える場合、スワップサイズはRAMサイズの平方根に少なくとも等しく、RAMのサイズの最大2倍である必要があります
- 休止状態を使用する場合、スワップサイズはRAMのサイズにRAMサイズの平方根を加えたものに等しくする必要があります
混乱している?私はそれが混乱していることを知っています。これが、RAMサイズと休止状態のニーズに基づいてUbuntuが推奨するスワップサイズを提供するこのテーブルを作成した理由です。
RAMサイズ | スワップサイズ(休止状態なし) | スワップサイズ(休止状態あり) |
---|---|---|
256MB | 256MB | 512MB |
512MB | 512MB | 1GB |
1GB | 1GB | 2GB |
2GB | 1GB | 3GB |
3GB | 2GB | 5GB |
4GB | 2GB | 6GB |
6GB | 2GB | 8GB |
8GB | 3GB | 11GB |
12GB | 3GB | 15GB |
16GB | 4GB | 20GB |
24GB | 5GB | 29GB |
32GB | 6GB | 38GB |
64GB | 8GB | 72GB |
128GB | 11GB | 139GB |
どのくらいのスワップサイズを使用しますか?
答えは決して単純ではありません。先に述べたように、長い間、スワップはRAMの2倍のサイズにすることが推奨されてきました。実際、私のDell XPS 13 Ubuntuエディションには、8GBのRAMに対して16GBのスワップサイズがあります。そのため、デルでさえ、swap=2xRAMの黄金律を採用することにしました。
Linuxシステムにはどのスワップサイズが好きですか?