解き放たれしソフトウェア

GNU/LinuxなどFLOSSについて書いてみるつもり

スワップは RAM の 20%、とレッドハットの人

Red Hat の人が、RAM の多い現在におけるスワップの必要性について書いています。

Do we really need swap on modern systems? - RED HAT BLOG

例えば RAM が 2GB でスワップが 2GB のシステム上で、間違えて 5GB を利用する設定でデータベースサーバを運用してしまったら、RAM を使い切ったらスワップアウトして遅くなり、スワップを使い切ってようやく不要なプロセスが終了させられるスワップが 2GB もあるせいで、システムが重くなる時間が長く続いてしまう。その間はログインすら不可能な状況が起こるかもしれない。

しかしもしもスワップ無しにしてしまうと、スワップアウトの起こらないまま直ちにプロセスが終了させられてしまう。そのため、トラブルを未然に防ぐことが不可能になるとともに、解析も困難になってしまう。

よって、RAM よりも少量でスワップを用意した方がよく、スワップに使用するディスクは速い方がよい、という結論。

Our size recommendation for most modern systems is ‘a part of the physical RAM’, for example, 20%. With this, the painfully slow phase of operation in our example will not last as long, and the OOM kicks in earlier.

物理 RAM の 2割

If you design your applications to regularly use swap, make sure to use faster devices, like SSD - starting with Red Hat Enterprise Linux 7.1, ‘swapon –discard’ can be used to send TRIM to SSD devices, to discard the device contents on swapon.

スワップに使用するディスクは、可能ならば SSD で。 いま(RHEL 7.1 以降)は、swapon のオプションには discard があるので、 SSDスワップを設定しても TRIM を発行させることが可能。

util-linuxswapon ですが、たしかにありますね。 https://git.kernel.org/cgit/utils/util-linux/util-linux.git/commit/?id=c230138

ただし、この記事は RHEL のブログで、あくまでもサーバ運用を想定して書かれています。

以前なら、書換寿命のある SSDスワップに用いたくはなかったものですが、今の SSD は耐性が向上しています。 しかもサーバ運用だとプロ用の高寿命 SSD が用いられることがよくあります。 そのため、高速である SSDスワップにも使った方がよいという思い切った結論の取れる時代になったようです。