Linuxのスワップ処理を最適化する方法

Linuxのスワップ処理を最適化するためのヒント - Open Tech Press

という記事でLinuxのスワップ処理に関する説明がされている。最初の4ページは特に目新しいことは書かれていないけれど、最後の5ページ目が参考になった。
Linuxカーネル2.6ではswappinessという新たなカーネルパラメータが追加され、管理者によるLinuxのスワップ処理の調整が可能になっている。このパラメータには0~100の値を設定するが、要は値が大きいほどページのスワップ処理が増え、値が小さいほど多くのメモリ領域がアプリケーションによって確保される。

/proc/sys/vm/swappiness でスワップし易さを調節できるそう。デフォルト値は60。確認したら、FedoraでもUbuntuでも60のままだった。0-100の間で設定して、0に近づくほどスワップしにくくなる。

そして次の記述も参考になった。以前は、スワップ領域のサイズは物理メモリの2倍を確保したほうがよいと言われていたのだけど、最近のLinuxカーネルでは以下のように設定すると良いらしい。

  1. 一般的なデスクトップマシンの場合はシステムメモリの2倍にあたるスワップ領域を確保する
  2. サーバの場合は利用可能なスワップの容量を少なめに取る(たとえば物理メモリの半分)
  3. 旧式のデスクトップマシン(メモリが128MBしかないものなど)では1GBまでの範囲で確保できるだけのスワップ領域を設定する

サーバ用途で利用している際に、大量にスワップさせてしまうとシステムのパフォーマンスが悪化するので、最近は僕も少なめに設定することが多かった。また、この記事では触れられていないけれども、HDDよりランダムアクセスが高速なUSBメモリにスワップ領域を確保するというのも効果がありそう。そのうち試してみたいなぁ。



Leave a comment


:

:

:

:

このエントリーのはてなブックマーク (-)