「Linuxのswapについて私が知っている二、三の事柄」の版間の差分
37行目: | 37行目: | ||
デフォルト値は60です | デフォルト値は60です | ||
<ref> | <ref> | ||
デフォルト値はカーネルコードの [http://uc2.h2np.net/misc/codes/vmscan.c.html#N132 vmscan.c] にハードコーディングされています。 | |||
</ref> | </ref> | ||
。 | 。 |
2015年7月26日 (日) 10:32時点における版
Linuxのswapについて私が知っている二、三の事柄
swapの高速化
fstabでswapのプライオリティが設定できます。この数が多ければ多いほど優先される仕組みになっています。 一方で同じ優先順位であれば均等に使われます。 複数のハードディスク上にswapパーティションを取り、それを同じ優先順位で設定すると、 スワップの際に並列に使われるのでraid0のような効果をもたらすように出来ています。
下の例は4つのswapパーティションを使いswaponした状態を示しています。


高速なSSDを複数用意し、その上にswapを設定し、
並列にアクセスできるような設定にすると、
かつてないような巨大かつ高速な仮想記憶が手に入ることになるでしょう。
稼働中にswapを無効にする
実メモリが十分にあり、スワップを利用していたプロセスが既に終了しており、swapが必要なくなった場合、 swapoffをするとswapに使われている記憶装置から実メモリの方にページが移動し、 swapが開放することができます。 再度swaponを行えばswapが設定されます。 このように柔軟にswapを利用する、あるいは止めることが出来ます。

コマンドfreeを使い、スワップに使われている容量と、メモリ空き領域を確認し、スワップされているサイズがメモリ上に充分のるようであれば、swapoffを行うことでスワップが解消されます。
ただし、スワップ領域上に吐き出されているものは使用頻度が少ないために吐き出されているのであって、このような形でスワップを解消したからといって全体のパフォーマンスが向上するというわけではありません。
swappiness
swappinessはkernel 2.6から入った機能で、スワップの発生する度合いのコントロールを行います。 0から100までの数値で、0が最もスワップの発生が押さえられ、100は最もスワップが発生し易くなります。 デフォルト値は60です [1] 。
# echo 99 > /proc/sys/vm/swappiness
あるいは
# sysctl vm.swappiness=99