Web フロントエンドを Database1 に追加するとします。このアプリケーションで同時に処理できるユーザー数を 10 に制限します。これを行うには、プロセス制限値の機能を使用します。
まず、ws1 という l ノードを新たに作成します。ws1 l ノードの下で Web サーバーアプリケーションを起動すれば、このアプリケーションで使用できるプロセスの数 (動作中の http セッションの数) を制御できます。
Web サーバーは Database1 アプリケーションの一部なので、これに db1 l ノードの割当数を与え、Database1 と競争して資源を得るとします。ここでは、次のようにして、計算資源の 60 パーセントを Web サーバーに割り当て、40 パーセントを Database1 アプリケーション自身に割り当てます。
# limadm set cpu.shares=6 ws1 # limadm set sgroup=db1 ws1 # limadm set cpu.myshares=4 db1 # srmuser ws1 /etc/bin/Webserver1/init.webserver |
最後の行では、Web サーバーを起動し、アプリケーションを ws1 l ノードに負担させます。Database1 には、cpu.myshares を 4 として割り当てます。これによって、db1 がその子プロセス Web サーバーと競合する割当数の割合は 4:6 になります。
cpu.shares は階層内の同等レベルでの資源割り当ての割合ですが、cpu.myshares は、親が実行するアプリケーションが動作中であるときの親対子レベルにおける資源割り当ての割合です。Solaris Resource Manager は、それぞれのレベルにおけるすべての動作中の l ノードの割当数の割合に基づいて資源を割り当てます。「それぞれのレベル」には、グループの親とすべての子の my.shares が含まれます。
Web サーバーが実行できるプロセスの数を制御するには、プロセス制限を ws1 l ノードに設定します。この例では 20 を使用します。Web サーバー照会は一般に 2 つのプロセスを生成するので、動作中の Web サーバー照会の数は実際には 10 に制限されます。
# limadm set process.limit=20 ws1 |
これで、スケジューリングツリーの動作中の l ノードの下に、別のアプリケーションが葉ノードとして追加されました。CPU 資源を動作中の親と子の間で分配するには、cpu.myshares を使って、使用可能な資源のある部分を親に、他の部分を子に割り当てます。プロセス制限値は、l ノードに対する動作中のセッションの数を制限するときに使用します。