2008年 8月 25日 月曜日
やっぱり Sun がスキ!
ゾーンに割りあてた 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 - 実行中のプロセス、タスク、およびプロジェクトの資源制
御の取得または設定
Posted at 04:05午後 8 25, 2008 by Naoyuki Yamada in Sun | 投稿されたコメント[0]
投稿されたコメント: