web-dev-qa-db-ja.com

スワップ:専用のスワップパーティションを作成するか、スワップファイルを作成する方が良いですか?

専用のスワップパーティションを作成する場合と、たとえば/ tmp/swapなどのスワップファイルを作成する場合の根拠はありますか?

私の特定のケースでは、メモリは少し低い(1GB)、SSDのディスク容量はかなり大きい(256GB)。したがって、交換はかなり定期的に行われます。

コメントは大歓迎です!

カーステン

9
CarstenP

スワップパーティションとは対照的にスワップファイルを使用する場合に見られる主な欠点は、スワップパーティションを断片化することはできないことですが、エクステントファイルシステムのスワップファイルは、作成時に分割される可能性があります。ディスクにより、シーケンシャルアクセスが遅くなります。

3
DopeGhoti

ファイルのI/O操作は、カーネルコードのより多くのレイヤー(VFSなど)を経由する必要があるため、ファイルへのスワッピングに関連するオーバーヘッドが多くなります。一方、それはより柔軟な設定であり、あなたのケースには十分かもしれません。

1
Karol Nowak

スワップファイルへのアクセスはファイルシステムを経由しません...カーネルはどのディスクブロックがスワップされているかを認識し、それらに直接アクセスします1。ただし、連続していないファイルの場合、ディスクのさまざまな領域にフラグメントが存在する可能性があり、特定の使用方法によっては、シークを追加すると、専用パーティションよりも速度が低下する場合があります。

OTOH、スワップパーティションのないクラウドサーバーを処理していて、それを作成する可能性がない場合、スワップファイルによってアプリケーションが保存されることがあります。


[1]カーネルは、スワップオン時にスワップオフセット->ディスクブロックのマップを生成し、それ以降、そのマップを使用して、すべてのキャッシュ、メタデータをバイパスし、基盤となるディスクキューに対して直接スワップI/Oを実行します。およびファイルシステムコード。」– Linux-Kernel Archive:Re:Swap partition vs swap file

1
George