スワップ ファイルはより柔軟ですが、スワップ パーティションよりも間違いやすいです。ファイルシステム エラーにより、スワップ ファイルが破損する可能性があります。ファイルは移動または削除できないため、スワップ ファイルは管理者にとって苦痛になる可能性があります。スワップ ファイルはハイバネーションには使用できません。スワップ ファイルは、以前はわずかに遅くなりましたが、現在ではその差はごくわずかです。
スワップ ファイルの利点は、事前にサイズを決定する必要がないことです。ただし、Linux では、オンラインでスワップ ファイルのサイズを変更することはできません。登録を解除し、サイズを変更してから再登録する (または、別のファイルを作成して古いファイルを削除する) 必要があります。そのため、スワップ パーティションと比較して、Linux でのスワップ ファイルにはそれほどメリットはありません。これは主に、永続的なフィクスチャとしてではなく、一時的により多くの仮想メモリが必要な場合に役立ちます。
スワップ パーティションは、アドレス指定可能なメモリ プールのみが必要な場合にファイル システムへの依存を回避できるため、優先される場合があります。
ただし、スワップ パーティションの代わりに、またはスワップ パーティションに加えて、スワップ ファイルを使用することを妨げるものは何もありません。
-
ファイルを作成します:
dd if=/dev/zero of=/extraswap bs=1M count=512
-
ファイルの内容を初期化:
mkswap /extraswap
-
使用:
swapon /extraswap
-
うまくいったかどうかを確認してください:
free -m
起動時に常にスワップファイルの使用を開始するには、/etc/fstab を編集して追加します
/extraswap swap swap defaults 0 0
[1] http://www.redhat.com/docs/manuals/linux/RHL-8.0-Manual/custom-guide/s1-swap-adding.html
おそらく主な理由は、メインのカーネル suspend-to-disk がスワップ ファイルで機能しないことです。たとえば、Debian wiki の指示では、uswsusp
をインストールします。
最近では、ファイルシステムが btrfs
の場合、スワップ ファイルが機能しません。 であるため、ディストリビューションで常にスワップをパーティションとして作成するのが最も簡単です。
カーネル バージョン 2.6 より前では、ファイルをスワップに使用すると、パーティションよりもパフォーマンスが低下する可能性があることが漠然と言及されていました。 https://www.kernel.org/doc/gorman/html/understand/understand014.html#text15