oinume journal

Scratchpad of what I learned

Ubuntu LinuxでSSDの寿命を延ばすための設定

SSDの寿命が本当に短いのか実験していないので何とも言えませんが、Ubuntu LinuxSSDの寿命を延ばすために行なった設定を書いておきます。本当に延びるかは謎です。 

swap領域をSSD内に作らない

swap領域をSSDに作ってしまうと、仮想メモリを割り当てる際にSSDに書き込みをしてしまうのでこれは避けましょう。また、/etc/sysctl.conf に以下を追記してOSごと再起動します。(再起動の代わりに sysctl -p で即時に反映することもできます)

vm.swappiness = 0

この設定をするとswapにページアウトしにくくなります。

OSのキャッシュの書き込みの頻度調整

Ubuntuはデフォルトでは書き込み処理はすべてメモリ上にキャッシュされ、これを5秒に1回ディスクに書き込むという仕組みになっているらしいです。なので、このキャッシュを書き込む頻度を5秒から15秒にします。具体的には /etc/sysctl.conf に以下の行を追加します。

vm.dirty_writeback_centisecs = 1500

設定したら sysctl -p するかOSごと再起動しましょう。

mlocateを行なう頻度を少なく

locateコマンドのデータベースを作成する mlocate はデフォルトでは /etc/cron.daily にあるので1日1回動いてしまいます。これが動くと大量のディスク書き込みが発生するので、locateのデータベースを最新にしなくても良い場合、この mlocate は /etc/cron.weekly にでも移動しておきます。

/tmpはtmpfsに

/tmpは再起動するとどうせ消えるデータなので、SSDへの書き込みを少なくするために tmpfs でマウントするようにします。具体的には /etc/fstab に以下の行を追記して再起動します。

tmpfs /tmp tmpfs defaults,size=512m 0 0

512m(=512MB)となっているところはお好みのサイズにしてください。

mountする際はnoatimeオプションをつける

デフォルトでは読み込みが発生する度にファイルの最終アクセス時刻が更新されてしまいますが、これも寿命を縮めてしまうので、noatimeオプションを導入します。(ただし、アクセス時刻を記録したい場合はこのオプションは導入しないでください)

具体的には /etc/fstab で

UUID=8bac1db5-e2c6-495f-b3ce-7390dea9392a / ext3 relatime,errors=remount-ro 0 1

と relatime となっているところを noatime にします。

UUID=8bac1db5-e2c6-495f-b3ce-7390dea9392a / ext3 noatime,errors=remount-ro 0 1

[tmkm-amazon]B004YA8I9M[/tmkm-amazon]