差分

移動先: 案内検索

Linuxのswapについて私が知っている二、三の事柄

1,144 バイト追加, 2018年7月4日 (水) 15:44
/* 稼働中にswapを無効にする */
一方で同じ優先順位であれば均等に使われます。
複数のハードディスク上にswapパーティションを取り、それを同じ優先順位で設定すると、
スワップの際に並列に使われるのでraid0のような効果をもたらすように出来ています。スワップの際に並列に使われるのでraid0 <ref> http://buffalo.jp/products/catalog/storage/raid/raid0.html </ref>のような効果をもたらすように出来ています。
下の例は4つのswapパーティションを使いswaponした状態を示しています。
コマンドfreeを使い、スワップに使われている容量と、メモリ空き領域を確認し、スワップされているサイズがメモリ上に充分のるようであれば、swapoffを行うことでスワップが解消されます。
ただし、スワップ領域上に吐き出されているものは使用頻度が少ないために吐き出されているのであって、このような形でスワップを解消したからといって全体のパフォーマンスが向上するというわけではありません。ただし、スワップ領域上に吐き出されているものは使用頻度が少ないために吐き出されているのであって、このような形でスワップを解消したからといって全体のパフォーマンスが必ず向上するというわけではありません。
=== swappiness ===
swappinessはkernel 2.6から入った機能で、スワップの発生する度合いのコントロールを行います。
0から100までの数値で、0が最もスワップの発生が押さえられ、100は最もスワップが発生し易くなります。
デフォルト値は60です。デフォルト値は60です
<ref>
カーネルコードの デフォルト値はカーネルコードの [http://uc2.h2np.net/misc/codes/vmscan.c.html#N132 vmscan.c を参照のこと。] にハードコーディングされています。
</ref>
変更するには
 
<pre class="bash">
# echo 99 > /proc/sys/vm/swappiness
</pre>
あるいは
<pre class="bash">
# sysctl vm.swappiness=99
</pre>
 
とします。
 
 
swappiness の最適な値は、システムの構成や使われ方、あるいは目的によって適切な値は変わるでしょう。
また管理者がシステムに対してどのような振舞いを期待するかでも変わるでしょう。
スワップされているページは最も優先順位の低いページ、
つまり最も使われていないページだということを理解しなくてはなりません。
スワップをさせないようにして、使われなくなったページが実メモリの中にとどまっている分、
ブロックデバイスのキャッシュバッファに回されるはずだった実メモリが少なくなり
I/O 性能が落ちる可能性もあるのです。
そのようなシステム全体のパフォーマンスを十分に考慮した上で swappiness は変更すべきでしょう。
== 脚注 ==
<references/>