cgroupを使ったCPU利用率の制御_2

色々試してみたのですが、どうにも不明なままです。

[試したこと]

  • cpu.sharesを変更してみる。

準備 1つめのターミナル

# echo $$> /cgroups/groupA/tasks

# while :; do true; done

2つめのターミナル

# echo $$> /cgroups/groupB/tasks

# while :; do true; done

3つめのターミナル

# top

groupAとgroupBに割り当てたプロセスのCPU使用率はだいたい25%程度になりました。

f:id:Takyu:20130608131030p:plain

前回30%くらいとしたのですが、実は25%が平均かもしれません。

本来は50%,50%となるはずなのですが、、

ここで、一度while〜doneを止めてから、groupAをcpu.sharesを変更しました。

# echo 512 > /cgroup/groupA/cpu.shares

f:id:Takyu:20130608131729p:plain

groupAがほぼ12%,groupBはほぼ25%になりました。

本来は、66%,33%となるはずなのですが、、

  • cgroupの管理サービスcgconfigを再起動

    # /etc/init.d/cgconfig restart

    -> restartはOKと出るが、

    Stopping cgconfig service: cgclear failed with Device or resource busy

    というメッセージが出るので、本当にrestartができているのか不明。

    ただ、restartにより、groupA,groupBは消えているので再起動は一見するとうまくいっているようにもみえます。

  • CPUのコア数を確認

    # cat /proc/cpuinfo | grep processor

    processor : 0

    元からCPUは1つでした。

cgroupについては調べても同じような情報しか出てきませんでした。

色々設定しながら実現する場合ならば、途中途中の設定ミスを疑えばよいのですが、今回の場合、できるようになってるはずのことを確認するだけなので、うまくいかないと解決方法が見えなくなってしまいますね。。

検討すべき場所はまだまだ残っているはずなのですが、他の分野の勉強も進める必要があるので、cgroupの利用方法については、いったん保留にしたいと思います。

原因がわかったら続きを書く予定です。