差分

移動先: 案内検索

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

2,449 バイト追加, 2018年7月4日 (水) 15:44
/* 稼働中にswapを無効にする */
== Linuxのswapについて私が知っている二、三の事柄 ==
=== swapの高速化 ===
fstabでswapのプライオリティが設定できる。この数が多ければ多いほど優先される。一方で同じ優先順位であれば均等に使われる。fstabでswapのプライオリティが設定できます。この数が多ければ多いほど優先される仕組みになっています。複数のハードディスク上にswapパーティションを取り、それを同じ優先順位で設定すると、スワップの際に並列に使われるのでraid0のような効果をもたらす。一方で同じ優先順位であれば均等に使われます。複数のハードディスク上にswapパーティションを取り、それを同じ優先順位で設定すると、スワップの際に並列に使われるのでraid0 <ref> http://buffalo.jp/products/catalog/storage/raid/raid0.html </ref>のような効果をもたらすように出来ています。
下の例は4つのswapパーティションを使いswaponした状態である。下の例は4つのswapパーティションを使いswaponした状態を示しています。
これはSSDを複数用意し、その上にswapを設定し、高速なSSDを複数用意し、その上にswapを設定し、
並列にアクセスできるような設定にすると、
かつてないような巨大かつ高速な仮想記憶が手に入ることを示唆している。かつてないような巨大かつ高速な仮想記憶が手に入ることになるでしょう。
=== 稼働中にswapを無効にする ===
実メモリが十分にあり、特別な処理を既に終了させswapが必要なくなった場合、実メモリが十分にあり、スワップを利用していたプロセスが既に終了しており、swapが必要なくなった場合、
swapoffをするとswapに使われている記憶装置から実メモリの方にページが移動し、
swapが開放される。swapが開放することができます。またswaponを行えばswapが設定される。再度swaponを行えばswapが設定されます。柔軟にswapを利用する、あるいは止めることができる。このように柔軟にswapを利用する、あるいは止めることが出来ます。  [[File:Mem-free.png|thumb|center|640px|コマンドfreeでメモリの利用状況を確認]]  コマンドfreeを使い、スワップに使われている容量と、メモリ空き領域を確認し、スワップされているサイズがメモリ上に充分のるようであれば、swapoffを行うことでスワップが解消されます。ただし、スワップ領域上に吐き出されているものは使用頻度が少ないために吐き出されているのであって、このような形でスワップを解消したからといって全体のパフォーマンスが必ず向上するというわけではありません。 === swappiness === swappinessはkernel 2.6から入った機能で、スワップの発生する度合いのコントロールを行います。0から100までの数値で、0が最もスワップの発生が押さえられ、100は最もスワップが発生し易くなります。デフォルト値は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/>