仮想マシンのプロセススケジューリングを考える


東京工業大学
田所秀和
2008/12/9

creditスケジューラの利用方法

 さて、それではcreditプロセススケジューラを実際に操作するには、どのようにすればいいでしょうか。以降ではcreditスケジューラの操作とそれぞれの挙動を見ていきます。これらの動作を理解すれば、より高度で実践的な操作を実現できるようになります。

xmコマンドを使ってコマンドラインから操作する

 ドメイン0上でxm sched-creditコマンドを用いることで、各ドメインに割り当てられたcreditスケジューラのパラメータを操作することができます。以下のようなコマンドによって、ドメインに割り当てられたweightとCAPを確認することができます。

# xm sched-credit -d ドメイン

 また、ドメインに対して新しいweightやCAPの値を設定するには、以下のようにします。

# xm sched-credit -d ドメイン -w weight値
# xm sched-credit -d ドメイン -c CAP

xenctrlライブラリを使ってプログラムから操作する

 xmコマンドだけではなく、C言語のプログラムを用いても、creditスケジューラのパラメータを操作することができます。これには、Xenの提供するxenctrlライブラリを用います(参考文献2)。

 xenctrlライブラリには、いろいろな機能がありますが、ここではcreditスケジューラに関する機能の説明だけにとどめます。creditスケジューラのパラメータを表す構造体は以下のようになっています。16bitの整数によって、weightとCAPを表しています。

struct xen_domctl_sched_credit {
    uint16_t weight;
    uint16_t cap;
};

 creditスケジューラのパラメータを取得するにはxc_sched_credit_domain_get関数を用います。domid(ドメインID)からweightとCAPの値を取得するコードは以下のようになります。

#include <stdio.h>
#include <xenctrl.h>

int main(void) {
        /* パラメータを取得するドメインのID */
        int domid = 12;

        /* 返り値を保存する変数 */
        struct xen_domctl_sched_credit credit_param;

        /* Xenの制御用のディスクリプタ */
        int xc_handle = xc_interface_open();

        /* パラメータを取得 */
        xc_sched_credit_domain_get(xc_handle, domid, &credit_param);

        printf("Domain:%d   weight:%d   cap:%d\n", domid, credit_param.weight, credit_param.cap);

        return 0;
}

 creditスケジューラのパラメータを設定するには、xc_sched_credit_domain_set関数を用います。

#include <xenctrl.h>

int main(void) {
        /* パラメータを取得するドメインのID */
        int domid = 12;

        /* 設定したい値を保存する変数 */
        struct xen_domctl_sched_credit credit_param = { .weight = 128, .cap = 10 };

        /* Xenの制御用のディスクリプタ */
        int xc_handle = xc_interface_open();

        /* weight と cap を設定 */
        xc_sched_credit_domain_set(xc_handle, domid, &credit_param);

        return 0;
}
* ここでは分かりやすくするため、ディスクリプタのクローズやエラーチェックを省いています。

次のページへ 2/3 次のページへ

 Index
仮想マシンのプロセススケジューリングを考える
  Page 1
・仮想マシンのスケジューリングの重要性
・bvt、sedfスケジューラはSMP環境でスケールしない
・creditスケジューラ
→ Page 2
・creditスケジューラの利用方法
  Page 3
・仮想マシンモニタによるプロセススケジューリング

Databaseフォーラム全記事インデックス



Database Expert フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Database Expert 記事ランキング

本日月間