Linuxでは、パーティションにext3やreiserfsなどを選択できます。スワップパーティションには、「スワップ」を選択します。これは実際にはどのファイルシステムですか?ext3パーティションを作成して、それをスワップパーティションにすることはできますか?それはどう違いますか?
John R. Graham
。
Linuxでは、パーティションにext3やreiserfsなどを選択できます。スワップパーティションには、「スワップ」を選択します。これは実際にはどのファイルシステムですか?ext3パーティションを作成して、それをスワップパーティションにすることはできますか?それはどう違いますか?
John R. Graham
。
回答:
スワップは実際のファイルシステムではありません。これは、特別な構造のない生のアドレス可能なメモリであるディスクの予約部分にすぎません。
mkswapは、追加情報を含むスワップ領域のヘッダーを作成します。util-linux-ngパッケージのswapheader.hから:
struct swap_header_v1 {
char bootbits[1024]; /* Space for disklabel etc. */
unsigned int version;
unsigned int last_page;
unsigned int nr_badpages;
unsigned int padding[125];
unsigned int badpages[1];
};
ヘッダーバージョン1は現在使用されています。スワップの生の構造の背後にあるすべての魔法についてです。
スワップパーティションにはファイルシステムが必要ないのは、その中にファイルやディレクトリがないからだと思います。スワップパーティションは仮想RAMの場所です。
Linuxには、スワップパーティションとスワップファイルの2つの形式のスワップスペースがあります。スワップパーティションは、スワップ専用に使用されるハードディスクの独立したセクションです。他のファイルをそこに置くことはできません。スワップファイルは、システムファイルとデータファイルの間に存在するファイルシステム内の特別なファイルです。
スワップは、2つの重要な理由で必要です。まず、システムが物理的に利用可能なメモリよりも多くのメモリを必要とする場合、カーネルは使用されていないページをスワップアウトし、メモリをすぐに必要とする現在のアプリケーション(プロセス)にメモリを提供します。第二に、アプリケーションの起動段階で使用されるかなりの数のページは、初期化にのみ使用でき、その後は使用できません。システムはこれらのページをスワップアウトし、他のアプリケーションやディスクキャッシュ用にメモリを解放できます。
スワップスペースを作成するには、ファイルシステムスワップとデバイス(またはraw)スワップの2つの方法があります。ファイルシステムスワップでは、ファイルシステム上にファイルを作成し、それをスワップスペースとして使用します(Windowsでpagefile.sysを使用するのと同じように)。デバイススワップでは、スワップ専用に作成したパーティションにスワップします。
どちらが良いですか:
この議論は、「昔」では以前よりずっと興味深いものになりました。
デバイススワップが「優れている」理由:rawパーティションにスワップしているため、inodeやその他のファイルシステムオーバーヘッドでファイルシステムの余分なオーバーヘッドをすべて処理する必要がないため、高速です
しかし今日、この議論は実際には成り立たない。最近のディスクアクセス速度の進化に伴い、デバイススワップはファイルシステムスワップよりも多くの時間を費やすことはありません。
ファイルシステムのスワップが「優れている」理由:サイズの変更がはるかに簡単です。パーティションサイズを変更すると、新しいファイルを作成するよりもずっと難しくなります。
しかし今日、多くの人がrawパーティションの代わりにLVMを使用しているため、スワップスペースの縮小と拡大は簡単です。
今日、それはさらに議論の余地があります:最近のほとんどのサーバーは、パフォーマンス上の理由から、メモリでいっぱいに接続するだけのコストの価値があります。(この議論は、RAMの入手が難しく、サーバーに4 GBから8 GBのRAMしか配置しないことが一般的だったため、以前よりずっと人気がありました)
FILESYSTEM SWAPを使用する理由(および一般的なスワップ)
最近では、4gigスワップのみでインストールするように指示し、すべてのLinuxインストールに同じconfig / imageを使用しています。Oracleのインストールには、より高いスワップの使用が必要なので、Oracleを使用するシステムでは、残りをファイルシステムスワップで作成します。アプリケーションにスワップ要件がある可能性があり、その場合は後でファイルシステムスワップを使用して追加できます。
これは役立ちますか?
私はここでLinuxでこれを行う方法の詳細な手順を持っています:http : //geekswing.com/geek/how-to-add-filesystem-swap-on-linux-and-unix-systems/