なぜスワップパーティションが必要なのか?

なぜスワップパーティションが必要なのか?

私は常に Ubuntu のインストールを暗号化しています。現在、フラッシュ ドライブに /boot をインストールし、2 つの暗号化パーティション (/ と swap) を持っています。ログインするには、/ と swap パーティションの両方にパス フレーズを入力する必要があります。Ubuntu では、Windows のようなページング ファイルではなく、なぜ swap パーティションが必要なのでしょうか。何年も前に Linux をいじり始めたとき、Virtual Box に Open Suse をインストールしたことをぼんやりと覚えています。夢でもない限り、Open Suse が / にページング ファイルを作成したように思います。Ubuntu で / にページング ファイルを作成して、追加のパーティションを回避することは可能ですか?

答え1

Open Suse でページング ファイルを作成する方法については、これまで使用した経験がないためコメントできません。ただし、Swap は Linux のページング パーティションです。

以下はスワップFAQ(によるUbuntu ドキュメント wiki への貢献者):

スワップとは何ですか?

スワップ スペースは、ハード ディスク上の領域で、マシンの仮想メモリの一部です。仮想メモリは、アクセス可能な物理メモリ (RAM) とスワップ スペースの組み合わせです。スワップ スペースは、非アクティブなメモリ ページを一時的に保持します。スワップ スペースは、システムがアクティブなプロセスに物理メモリが必要であると判断し、使用可能な未使用の物理メモリが不足しているときに使用されます。システムがさらにメモリ リソースまたはスペースを必要とする場合、物理メモリ内の非アクティブなページはスワップ スペースに移動され、その物理メモリが他の用途に解放されます。スワップのアクセス時間は遅いため、物理メモリを完全に置き換えるものではないことに注意してください。スワップ スペースは、専用のスワップ パーティション (推奨)、スワップ ファイル、またはスワップ パーティションとスワップ ファイルの組み合わせにすることができます。

なぜスワップが必要なのでしょうか?

メモリを消費するプログラム 場合によっては、大規模なプログラム (LibreOffice、Neverwinter Nights、ビデオ エディターなど) によって、システム全体に余分なメモリが必要になることがあります。これらの大規模なプログラムの起動時に使用されるページの多くは、初期化にのみ使用され、その後は使用されない可能性があります。システムはこれらのページをスワップ アウトして、他のプログラムやディスク キャッシュ用にメモリを解放することができます。このような場合、スワップはシステムが余分な負荷を処理できるようにするために使用されます。

ハイバネーション(ディスクサスペンド)ハイバネーション機能 (ディスクへのサスペンド) は、マシンの電源を切る前に RAM の内容をスワップ パーティションに書き出します。したがって、スワップ パーティションは少なくとも RAM のサイズと同じ大きさである必要があります。Ubuntu で現在使用されているハイバネーション実装 (swsusp) には、スワップ パーティションまたはサスペンド パーティションが必要です。アクティブなファイル システム上のスワップ ファイルは使用できません。

予期せぬ事態予期せぬ出来事 (プログラムがおかしくなったり、想定していたよりもはるかに多くのスペースを必要とするアクションが発生したり、その他の予期せぬ出来事の組み合わせ) が発生することがあります。このような場合、スワップにより、何が起こったかを把握したり、作業を完了したりするための追加の遅延が発生する可能性があります。

メモリ使用量の最適化機械式ハード ドライブは RAM よりかなり遅いため (SSD - ソリッド ステート ドライブ - ストレージは物理ドライブほど遅くはありませんが、RAM よりは遅いです)、ファイル (ビデオなどのデータ ファイル、Firefox などの実行ファイル、ライブラリなど) が必要な場合、Linux カーネルはファイルを RAM に読み込んでそこに保存します。そのため、次回必要になったときには、すでに RAM にあるため、データ アクセスがはるかに高速になります。ディスク読み取りを高速化する RAM の部分は、「キャッシュ メモリ」と呼ばれます。応答性に関して大きな違いがあることに気付くでしょう。Linux カーネルは、プログラムによって予約されているが実際には使用されていない RAM をスワップに自動的に移動し、キャッシュ メモリを拡張するというより適切な目的に役立てます。

スワップパフォーマンスの最適化スワップ領域はディスク デバイスを使用するため、スワップ領域を大量に使用するシステムではパフォーマンスの問題が発生する可能性があります。これは、スワップ操作に必要なときに、システム自体も同時に同じディスク デバイスを使用している可能性があるためです。この問題を軽減する 1 つの方法は、スワップ領域を別の物理ドライブに配置して、そのリソースの競合を軽減または排除することです。

すべてのコンポーネントのより詳細な復習と理解については、コミュニティ Wiki をご覧ください。スワップFAQ

関連情報