SSDを使用している場合、SSDの寿命を延ばすためにスワップ性を変更する必要がありますか?


35

私が遭遇したこの記事の次の提案が含まれています。

スワップとスワップ

スワップパーティションを古いHDDに保存しました。SSDでのスワップは高速ですが、SSDの寿命も短くなります。

私のシステムには十分なメモリがあるので、swappiness値を0に減らして、絶対に必要な場合にのみスワップするようにUbuntuに指示します。行vm.swappiness = 0を/etc/sysctl.confに追加して、これを行いました。

swappinessをゼロに設定するとSSDの寿命が延びるというのは本当ですか?私は他の場所でこれへの参照を見つけることができません。

回答:


30

swappinessを0に減らすことは、使用可能な空きRAMがなくなったときにのみ、OSがスワップにSSDの使用を開始することを意味します。

理論的には、SSDの書き込みが少なくなるため、SSDの寿命を延ばすことができます。SSDの寿命を実際に延ばすかどうかによります:

  • Linuxは、swapness値が高い場合でも(特にWindowsと比較して)スワップを使用することはめったにない ので、この設定はRAM使用量と比較して十分なRAMを備えたシステムでのスワップ動作を変更しない可能性があります。RAMが不足している場合、デフォルト値の60でスワッピングが頻繁に発生する可能性があります。この場合、swappinessの減少はSSDの書き込みサイクル制限に大きな影響を与える可能性があります。

  • 少なくともMLCベースのSSDの場合、SSDの書き込み耐久性は、単純な消費者の使用に対してはまだかなり高いです。彼らは、現在のMLCベースのSSDはcaを許容できると言います。3000〜5000回の書き込みサイクルが消耗する前。3000の制限を使用して計算すると、毎日10 GBの書き込みを行う128 GB SSDが約1時間で正常に機能します。38000日、つまり約 100年。もちろん、より大きなSSDを使用している場合、それはずっと後で使い果たされます。そのため、セルが摩耗してSSDが死ぬことはほとんどありません。(もちろん、企業/サーバー環境でSSDを使用する場合、毎日の書き込みははるかに多くなりますが、企業環境では通常SLCベースのSSDが使用されます。)

  • この書き込みサイクルの制限は非常に高いため、SSDメーカーは(最初はSAMSUNG)消費者向けのTLCベースのSSDの製造を開始しました。1000回の書き込みサイクルですが、安価です。これらの企業は、これらのSSDの書き込みサイクル制限でさえ、製品の使用が予想される時間よりも長く続くと述べています。(2024年に128 GB SSDを引き続き使用することはまずありません)TLCベースのSSDを使用しており、たとえば50 GB /日などのドライブに頻繁に書き込む場合、swapiness値を下げることは大きな影響を与える可能性がありますSSDの寿命について。
  • これは、マニアが絶えず書き込みを行うことでSSDの耐久性をテストした巨大なスレッドです。彼らのテスト方法はおそらく完全に正しいわけではありませんが、結果は非常に印象的で落ち着いています。

要約すると、理論上はそうです、swappinessを減らすとSSDの寿命が長くなりますが、実際にはそうではありません。ただし、TLCベースのSSDがあり、RAMが不足していて、一般的にSSDに頻繁に書き込む場合は、実用的な効果もあります。

MLCベースの128 GB SSDを使用しており、主にオフィス/ブラウジングにシステムを使用しており、RAM使用量と比較して十分なRAMがあるため、SSDに大きな書き込み負荷がかかっていません(ただし、マシンは24時間365日稼働しています)。しかし、私はまったくスワップする必要がなく、SSDをインストールしたときに自分でswappinessを0に設定したので、swappinessを下げるのはとても簡単です。(実際には、HDDのみを搭載したマシンでも、すべてのマシンでswappinessを0に設定しました。)

を使用して、SSDがどのくらいの書き込みを受けているかを確認するにsmartctlは、で行を探してくださいTotal_LBAs_Written。これにより、SSDに書き込まれた512bセクターの量がわかります。(はい私は、SSDは物理的に4Kのブロックではなく、512Bを持っていることを知っているが、SMARTは、まだ言う:Sector Size: 512 bytes logical/physical私はに匹敵する結果を得る512個のブロックでtune2fs -l生涯を出力を書き込みます。)512との数とあなたがバイトで書き込みを取得することを複数だから、または略して:

sudo smartctl -a /dev/sda | grep Total_LBAs_Written | awk '{print $10*512/1024/1024/1024 " GiB"}'

/ dev / sdaのGiBで出力します。(デバイス名をSSDの名前に変更するだけです。)私の128 GB SSDが約1時間かかりました。1年弱で800 GBの書き込みが行われます。つまり、3000から7回の書き込みサイクルしか使用されません。


ファイルシステムでは、TRIMを使用して書き込みの増幅を減らすことができます。SWAPパーティションに相当するものはありますか?
ブライス

この答えは、「スワッピング」が0から100の範囲であり、ゼロがスワッピングを意味しない(および100がRAMを意味しない)ことを前提としているようです。しかし、別の答えswappiness値についてさらに詳しく説明します。これは、数値の範囲が0から200であり、さまざまな種類のスワッピングに対する相対的な重みを表していることを示しています。
palswim

7

SSDの摩耗に関するこの話はすべて「推測」です。私も同じ気持ちでしたが、商業的に使用し始めました。私は東海岸で最速の神託クラスターの1つを持っています。3年前、ストレージ全体と一時ファイルシステムにSSDを導入しました。SSDに対して1日に数十億回の書き込み操作を行います。3年経っても、まだ10%の燃え尽き症候群に近づいていない 私が商業的にそれをすることができるならば、彼らは住宅の状況で決してすり減りません。それで、LinuxワークステーションとBAMのスワップ領域専用のSSDソリューションを実装しました!!!

したがって、あなたの走行距離はさまざまですが、SSDはあらゆる方法で利用できます。

デイブ


サーバー向けのSSDは、消費者向けの(安価な)SSDよりも多くの書き込みを処理できます。
ジャーノ

1
理解できましたが、24時間365日稼働するワークステーションにコンシューマーSSDをインストールし、企業全体に展開し、2日ごとにデルタをバックアップしましたが、2年間で単一の障害は発生していません。物理的な回転盤のMTBFは3年であり、25年以上のシステムの販売/サービスの経験では、かなり正確です。SSDは他のすべてのオプション(商用または消費者)よりも優れています。
TekOps

3

はい。SSDの寿命を延ばすために、スワップ性を変更する必要があります。

Swappinessでは、使用するスワップファイルの量を制御できます。Swappinessの値は0から100に変更できます。swapnessの値が高いほど、カーネルがスワップスペースを使用しようとし、swapinessの値が低いほど、設定に応じてカーネルが使用するスワップスペースが少なくなるか、まったくありません。

デフォルトのswappiness値は60です。RAMが十分にある場合は、SSDではなくHDDに読み書きするスワップスペースの使用を避ける必要があります。4 GB以上のRAMを搭載したシステムの場合、swappinessの設定を10から0の間で変更し、スワップファイルをHDDに配置して、スワップの使用量を減らしてください。

スワップスペースの実行は非常にディスクI / Oを集中的に使用しますが、実際にはSSDにとっては悪いことです。SSDは、非常に多くの書き込みを処理することができますが、それが悪化すると、別のドライブを購入せざるを得なくなります。そのため、可能な限り、スワップ領域をSSDから離れたセカンダリの回転ドライブに移動します。

ソリッドステートドライブは、書き込みアクションにより比較的早く摩耗します。特に、SSDの最も古い世代はその面で脆弱でしたが、それよりも低い程度ではまだ新しい世代の場合に当てはまります。

新しいディスクに新しいパーティションを作成するか、代わりにスワップファイルを作成することができます。新しいパーティションを作成すると、ほとんど常にパフォーマンスが向上します。

移動先の代替ドライブがない場合は、物理RAMが100%になったときにのみスワップを有効にする設定を変更できます。これにより、スワップファイルの負荷が軽減され、SSDが改善されます。キーボードのCtrl+ Alt+ Tを押すだけで、ターミナルが開きます。開いたら、以下のコマンドを実行します:

echo 0 > /proc/sys/vm/swappiness

SSDの消耗は書き込みサイクルに関係しています

ソリッドステートドライブは、書き込みアクションにより比較的早く摩耗します。特に、SSDの最も古い世代はその面で脆弱でしたが、それよりも低い程度ではまだ新しい世代の場合に当てはまります。

トリムを使用

TRIMは、SSDで使用する利点です。ソフトウェアで実行され、SSDコントローラーと通信して、どの「ブロック」がファイルシステムに不要になり、安全にクリーニングして上書きできるかを通知します。これにより、実際にはパフォーマンスが向上することはありませんが、SSDの寿命が長くなります。

出典:SSD を最適化するためのLinux SSDの調整と使用方法


何が間違っているのか知りたいのですが?OPは、SSDの寿命を延ばすためにスワップ性を変更する必要があるかどうかを尋ねましたが、答えはイエスであり、スワップ性を変更する必要があります。
ミッチ

Ubuntuの最新バージョンは、SSDにTRIMを自動的に使用することを理解しています。
水田ランダウ

最新のUbuntuは、SSDの特定のモデルにのみTRIMを使用します。@PaddyLandau
ブライス

2

swappinessをゼロに設定するとSSDの寿命が延びるというのは本当ですか?

Linuxがメモリブロックをスワップパーティションに移動する頻度が低くなります。スワップがSSDにある場合、スワップへの書き込みは通常、書き込みサイクルを使用します。スワップは必要な場合にのみ使用されることに注意してください。十分なRAMがあれば、それがなくてもよい場合があります(休止状態が必要な場合を除きますが、それは別の問題です)。

このアクションの効果は異なる場合がありますが、SSDの書き込みサイクルを節約するためだけに行うのは間違っています。最新のSSD(約2012年以降)には大量の書き込みサイクルがあり、ほとんどすべてのRAMを使い果たしている場合、アプリケーションのパフォーマンスが低下する可能性があります。プログラムのインストール中に、適切なスワップよりも多くの書き込みサイクルを使用します。繰り返しますが、スワップはデフォルトで必要な場合にのみ使用されます。

スワップに使用されるSSD書き込みサイクルが心配な場合は、十分なRAMがあればスワップを完全に削除/無効化し、スワップ性をいじるのではなく、HDDで一時的なスワップのみを有効にします。それが最善のルートです。


0

swappiness設定をより低い値に変更することを強くお勧めします。システムに十分なメモリ/ RAMが4 GB以上のRAMがある場合、最良は「0」です。高いRAMシステムで10のswappinessであっても、ほとんどすべてがすでにRAMにあるため、ubuntuがスワップパーティションに何かを置くことはほとんどありません。

私は少しグーグル検索をして、このページを見つけましたhttp://namhuy.net/1563/how-to-tweak-and-optimize-ssd-for-ubuntu-linux-mint.html

UbuntuシステムのSSDをより効率的に調整して最適化し、ssdの寿命を延ばすのに役立つ場合があります


0

swappinessを変更しても、実際には影響はありません。RAMが不足しているシステムで多くのことを試してみましたが、可能な限りSSDにプッシュしたいので、実際にはほとんど影響を与えませんでした。メモリに残っているアイテム(必要なことを意味します)。これは重要なポイントかもしれません。


0

smartctl出力をチェックするというアイデアは気に入りましたが、私のコードはもう少しコンパクトです。人々はそれが分からない、なぜ私が理解したことがないawk持ってgrep、それに組み込まれた機能を。

sudo smartctl -a /dev/sdb | awk ' ($0 ~ /Total_LBAs_Written/) {print ($10*512)/(1024^3) " GiB"}'

これは私が使用するコードですが:

sudo smartctl -a ${device} | awk ' ($0 ~ /Total_LBAs_Written/) { if (($10*512)/(1024^3) > 1000) { msg="TiB"; size=($10*512)/(1024^4); } else { msg="GiB"; size=($10*512)/(1024^3); }; printf "\nThis device has had %.2
f %s written to it.\n",size,msg; }'
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.