ゾーンに割りあてた CPU の利用率を動的に変更する方法 : やっぱり Sun がスキ! やっぱり Sun がスキ!

やっぱり Sun がスキ!

http://blogs.sun.com/yappri/date/20080825 2008年 8月 25日 月曜日

ゾーンに割りあてた CPU の利用率を動的に変更する方法

今回は、Solaris の Zone 間で CPU の利用率を制御する zone.cpu-shares プロパティ を prctl コマンドで動的に変更する方法を紹介します。
この方法は、Zone 上で動作しているアプリケーションの CPU 利用率を一時的に 増やしたい時、zonecfg による再定義や、Zone の再起動が必要なくなりますのでとて も便利です。

まずは、現在の zone.cpu-shares の値を確認してみます。 下記の例は、apache Zone に対する確認例です。

( zone.cpu-shares 値確認例 )
# prctl -n zone.cpu-shares -i zone apache
zone: 1: apache
NAME  PRIVILEGE VALUE    FLAG   ACTION                               RECIPIENT
zone.cpu-shares
      privileged       2            -   none                                 -
      system       65.5K          max   none                                 -
zone.cpu-shares の値が 2 でセットされているのが確認できました。

それでは、動的に値を変更してみましょう。今回は、zone.cpu-shares の値を 4 に変更します。

( zone.cpu-shares 値変更例 )
# prctl -n zone.cpu-shares -v 4 -r -i zone apache

# prctl -n zone.cpu-shares -i zone apache
zone: 1: apache
NAME  PRIVILEGE VALUE    FLAG   ACTION                               RECIPIENT
zone.cpu-shares
      privileged       4            -   none                                 -
      system       65.5K          max   none

このように prctl コマンドで簡単に zone.cpu-shares の値が変更が可能です。
ちなみに、Zone を再起動した場合、設定は元の値に戻ります。

最後に
prctl は、priocntl と勘違いしやすいのですが、 prctl の pr は、プライオリティ ではなく、プロジェクトの意味になります。man で prctl を引いてみると、下記 のような説明が表示されます。
【名前】
     prctl - 実行中のプロセス、タスク、およびプロジェクトの資源制
     御の取得または設定

投稿されたコメント:

コメント
  • HTML文法 不許可