Linuxがファイルの代わりにスワップパーティションを使用するのはなぜですか?

Linuxがファイルの代わりにスワップパーティションを使用するのはなぜですか?

私の考えでは、スワップファイルはより柔軟です。

答え1

スワップファイルはスワップパーティションよりも柔軟ですが、エラーが発生しやすいです。ファイルシステムのエラーにより、スワップファイルが破損する可能性があります。ファイルを移動または削除できないため、ファイル交換は管理者にとって面倒な作業になる可能性があります。休止状態ではスワップファイルは使用できません。以前はファイル交換の速度が少し遅かったのですが、今はその違いはわずかです。

スワップファイルの利点は、サイズを事前に決定する必要がないことです。ただし、Linuxではまだスワップファイルのサイズをオンラインにすることはできません。登録をキャンセルし、サイズを変更して再登録する必要があります(または別のファイルを作成して古いファイルを削除する必要があります)。したがって、Linuxでは、スワップファイルはスワップパーティションと比較して多くの利点を提供しません。永続的な固定装置ではなく、一時的に多くの仮想メモリが必要な場合に主に便利です。

答え2

スワップパーティションは、アドレス指定可能なメモリプールのみが必要な場合にファイルシステムに依存しないようにするため、好ましい場合があります。

ただし、スワップパーティションの代わりに、またはスワップパーティションに追加してスワップファイルを使用するのを防ぐことはできません。

  • ファイルを生成します。

    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

答え3

おそらく主な理由は、ディスクのメインカーネルの一時停止がスワップファイルで機能しないためです。例えばDebian Wikiuswsusp必要に応じて指示に従ってインストールしてください。

最近では、ファイルシステムが機能してもスワップファイルが機能しなくなるため、ディストリビューbtrfsションでは常にスワップをパーティションとして作成するのが最も簡単です。

誰かがカーネルバージョン2.6より前には、スワップ用のファイルを使用すると、パーティション化よりもパフォーマンスが低下する可能性があると漠然と述べました。 https://www.kernel.org/doc/gorman/html/understand/understand014.html#text15

答え4

これは、主にパーティションに位置するデータのアクセス時間が短いためであると考えられる。スワップファイルの目的は、システム管理者が実際にメモリが不足してシステムにクラッシュする可能性がある多くのタスクを実行する必要がある場合に役立ちます。この場合、必要に応じて時々スワップファイルを生成します。

しかし、とにかく両方を持つことができます。

関連情報