RHEL KVM ksmctlでメモリの効率化
KVMにはKSMという仮想マシンのメモリ最適化の仕組みが搭載されている。
デフォルトはOFF。
KSMは Kernel Samepage Merging(またはkernel sharepage merging)の略で、カーネルがユーザプロセスのメモリをスキャンし、同じ内容があればマージしてメモリを節約する機能。
同一OSを複数起動する仮想環境ではかなり効果がある。
こんな感じで使う。設定は簡単。
■現在の状態を確認(実行されているか、いないか)
# ksmctl info
■ksmを開始する。
# ksmctl start npages sleep
npages 一回の走査でスキャンするページ数
sleep スキャンの間隔(ミリ秒??)
■ksmを停止する。
# ksmctl stop
という形で指定する。
使ってみた感じは以下。■4つの仮想マシン(RHEL5.5 仮想メモリ1GB)を起動した状態のホストのメモリ状態が以下 [root@ml115g5-1 sections]# free total used free Mem: 8035680 1627576 6408104 -/+ buffers/cache: 1298064 6737616 Swap: 10223608 0 10223608 ■ksmを有効にする [root@ml115g5-1 sections]# ksmctl info flags 0, pages_to_scan 0, sleep_time 0 ← 未設定状態 [root@ml115g5-1 sections]# ksmctl start 50 5000 created scanner [root@ml115g5-1 sections]# ksmctl info flags 1, pages_to_scan 50, sleep_time 5000 ← 設定状態 ■5分ほど待った後のメモリ状態 [root@ml115g5-1 sections]# free total used free Mem: 8035680 1156148 6879532 -/+ buffers/cache: 825160 7210520 Swap: 10223608 0 10223608 使用量が減っているのが確認できると思う。 ■KSMの設定を永続化する。 コマンドラインからの有効化は一時的なものなので、再起動すると失われてしまう。 これを恒久設定にするには、rc.local等に記載しておくしかないような感じ(RHEL/CentOS5.5時点) 参考>> KSM内部解析 参考>> Using KSM (Kernel Samepage Merging) with KVM
壊れてゆくデータ。: RHEL KVM ksmctlでメモリの効率化
CentOS 5.5で出来る、LinuxKVMのKSM有効か方法です。
1年前 | 固定リンク | 2010年 10月 25日 | 
