スワップ ファイルをマウントするには、「discard」オプションを使用する必要がありますか?

スワップ ファイルをマウントするには、「discard」オプションを使用する必要がありますか?

Arch Wikiによるとスワップパーティションのファイルdefaults,discardで使用できる。しかし、スワップファイルについては明確ではなく、fstabマニュアルページ

スワップファイルが、それ自体がオプションでマウントされているファイルシステムdiscard(明らかにSSD内にある)に存在する場合、それdiscard自体を使用するべきでしょうか?また、親ファイルシステムがない discard'ing?

直感的には「いいえ」ですが、それについては何も見つけられなかったので、議論する価値があると思いました。

答え1

いいえ、そうは思いません。

1: スワップスペースは、フリースペースファイルシステムとして

2: 重要なのは、ウェアレベリングが適切に機能するために、SSD に常に少なくとも 25% の空き領域を確保しておくことです (この値は Sandisk の担当者から電話で教えてもらいました)。

=> ディスクに作業用の予備のクラスターがあり、WL を実行している限り、ディスクの 5% がトリミングされなかったり、継続的に書き換えられたりしても、実際には問題ではありません。同じ論理セクターまたは物理セクターを書き換える場合でも、十分な大きさのブロックを書き込むと、WL はいずれにしても異なるクラスターを使用します。

ディスク全体をスワップに使用している場合、この質問には答えがありません。スワップに使用されているディスク全体は、トリミングしないと早期に劣化する可能性があります。

もう 1 つの質問は、スワップ ドライバーは破棄をサポートするかどうかです。ext3/ext4 はサポートします。

おそらく、スワップがディスクのかなりの割合を占めている場合は、可能であれば、シャットダウン中にスワップ領域を破棄/トリミングできます。可能であれば、すべてのサービスを終了した後、swapoff を実行し、スワップ領域を破棄する方法を見つけます (私は専門家ではないため、質問に回答しないままにしないために、mkfs.ext3、fstrim、mkswap を再度提案します。おそらく、他にもより良い解決策があります。シャットダウンが UPS によるものかどうかを確認してください)。

答え2

他の回答で残された質問/提案の一部は、以下のドキュメントを読むことで回答できます。

ファイルシステムでは推奨されないと思いますdiscard。代わりに定期的に実行することをお勧めしますfstrim。このための cron ジョブを見つけることができます。

カーネル開発者は、最近でも破棄操作のパフォーマンスに特に満足していません。デバイス間でのばらつきが大きすぎます。また、定期的に破棄を行う必要があります。ともかくこれは、デバイスがビジー状態の場合、破棄操作をドロップできるためです。

他の回答にあるように、ファイルシステムはスワップ領域よりもはるかに大きいため、そうでないことを証明できない限り、オプションを追加しない方がよいでしょうdiscard。 はdiscard=once賢い方法ですが、それでも起動が遅くなる可能性があります (スワップ領域が使用されていた場合)。したがって、有効にする価値はないと思います。

男のスワポン

-d, --discard[=ポリシー]

スワップバッキングデバイスが破棄またはトリム操作をサポートしている場合は、スワップ破棄を有効にします。これにより、一部のソリッドステートデバイスのパフォーマンスが向上する可能性がありますが、多くの場合、このオプションでは、2 つの利用可能なスワップ破棄ポリシーを選択できます。--discard=once は swapon 時にスワップ領域全体に対して 1 回限りの破棄操作を実行します。--discard=pages は、解放されたスワップ ページを再利用できるようになる前に非同期的に破棄します。ポリシーが選択されていない場合、デフォルトの動作では両方の破棄タイプが有効になります。/etc/fstab マウント オプションの discard、discard=once、または discard=pages を使用して、破棄フラグを有効にすることもできます。

関連情報