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 を使用して、破棄フラグを有効にすることもできます。