たとえば、専用のスワップパーティションを作成する時点とスワップファイルを作成する時点の理由はありますか/tmp/swap
?
私の特別なケースでは、メモリが少し足り(1GB)、SSDのディスク容量がかなり大きい(256GB)。したがって、交換が頻繁に発生します。
どんな意見でも感謝します!
カルステン
答え1
スワップパーティションの代わりにスワップファイルを使用するときに私が見つけた主な欠点は、スワップパーティションを断片化できないことですが、拡張ファイルシステムのスワップファイルは作成時にパーティションから断片化できることです。ディスクによりシーケンシャルアクセスが遅くなります。
答え2
スワップファイルへのアクセスはファイルシステムを介しません。カーネルは、どのディスクブロックがスワップであるかを知り、直接アクセスします1。ただし、連続していないファイルはディスクのさまざまな領域で断片化される可能性があり、使用量によっては追加の検索が専用パーティションよりも遅くなる可能性があります。
OTOH、スワップパーティションがなく、スワップパーティションを作成できないクラウドサーバーを扱う場合は、スワップファイルにアプリケーションを含めることができます。
[1]」カーネルはスワップ時にスワップオフセット - >ディスクブロックマッピングを作成し、その時点からこのマッピングを使用してすべてのキャッシュ、メタデータ、およびファイルシステムコードをバイパスしながら、プライマリディスクキューに対して直接スワップI / Oを実行します。"——Linuxカーネルのアーカイブ:Re:パーティションの交換とファイルの交換
答え3
ファイルへのI / O操作はより多くのカーネルコード層(VFSなど)を必要とするため、ファイルの交換に関連するオーバーヘッドが増えます。一方、これは状況に十分である可能性があるより柔軟な設定です。
答え4
Linuxでは、スワップファイルは比較的効率的であり、スワップファイルが連続したブロックセットとして割り当てられている場合、パーティションとほぼ同じです(これを達成するには、最初にファイルシステムを作成または作成する前にファイルシステムを最適化することが重要です)。効率的。
一時暗号化(セキュリティにとって非常に重要)と組み合わせても、オーバーヘッドはあまり追加されません(crypttab
manページを参照)。