nkjmkzk.net

Social, Platform, Cloud Computing

Xenでメモリをオーバーコミットする(Self-Ballooningセットアップ編)

概要

  • self-ballooningはゲストOS自らメモリをある条件に基づいて動的に返却する/獲得ことによって実質的にメモリをオーバーコミットするための仕組み
  • xenballoondはゲストOSで動くbashベースのデーモン。これがself-ballooningを制御する
  • xenballoondはdom0へのメモリ情報提供を担うことも計画されている
  • xenballoondは/proc/meminfoのCommitted_ASの値をベースに最低限必要なメモリ容量を判別する

環境

  • Xen: 3.4.0(Oracle VM Server 2.2.1)及び4.0.0(Fedora 12)で確認
  • ゲストOS: Oracle Enterprise Linux 5.4 x86_64

セットアップ方法

Xen側には特殊な設定は必要ありません。すべてゲストOSでの作業です。

まず、ゲストOS上でxen-4.0.0.tar.gzをxen.orgからダウンロードし展開します。これはxenのtarボールの中に必要なスクリプトがあるからです。(恐らくXen 3.3以降であれば必要なツールが含まれているはず)

[root@guest]# tar xvfz xen-4.0.0.tar.gz

展開されたディレクトリ中から3つのファイルをそれぞれインストール(コピー)する

[root@guest]# cp xen-4.0.0/tools/xenballoon/xenballon.conf /etc/sysconfig/
[root@guest]# cp xen-4.0.0/tools/xenballoon/xenballond /usr/bin/
[root@guest]# cp xen-4.0.0/tools/xenballoon/xenballond.init /etc/init.d/xenballoond

bashファイルを実行可能なようにパーミッションを変更する

[root@guest]# chmod 755 /usr/sbin/xenballoond
[root@guest]# chmod 755 /etc/init.d/xenballoond

必要に応じて設定ファイルを編集する

[root@guest]# vi /etc/sysconfig/xenballoon.conf

*特にXENBALLOON_SELF=falseはtrueに変更する必要がある

xenballoondデーモンを起動する

[root@guest]# service xenballoond start

検証結果

  • self-ballooning有効化によって動的にメモリ容量が縮小されるか? => yes
  • self-ballooning有効化によって動的にメモリ容量が拡張されるか? => yes(ただしユーザプロセスがメモリを予約した場合。page cacheでは拡張は発動しない)

使用したツール

mem_allocate.c(メモリを確保し、60秒後に解放するツール。適当に作った。)

#include 
#include 
#include 

int main(int argc, char **argv) {
       char *str;
       int i;

       if (argc == 2) {
               sscanf(argv[1], "%d", &i);
               printf("Allocating %d Bytes for 60 seconds...\n", i);
               str = (char *)malloc(i);
               memset(str, 1, i);
               sleep(60);
               free(str);
       } else {
               printf("This program needs exactly 1 argument.\nYou can set the bulk of RAM to allocate with integer.\n");
       }
       return 0;
}

Demo



Reference

without comments

Written by 中嶋 一樹

5月 19th, 2010 at 9:04 am

Posted in Uncategorized

Tagged with , ,

Leave a Reply