Solaris Resource Manager 1.1 のシステム管理

Web サーバーの管理

Solaris Resource Manager ソフトウェアは、CPU と仮想メモリーの使用量を管理することで、Web サーバー上の資源を管理できます。Web サーバーを実行するシステムでは、3 つの基本的なトポロジーを使用できます。

統合 Web サーバーの資源管理

Web サーバー全体で使用できる資源の量を制御することで、単一の Web サーバーを管理できます。Web サーバーが他の作業負荷と統合されている環境では、この方法が役立ちます。これは最も基本的な資源管理の方法であり、他の作業負荷が Web サーバーの性能に影響を与えず、逆の場合も同様です。たとえば、Web サーバーの CGI スクリプトがメモリーリークを発生して制御不能になった場合、システム全体でスワップ空間が不足するのではなく、Web サーバーだけに影響が出ます。

この例の Web サーバーには割当数 20 を指定していますが、これは、データベースでプロセッサへの要求が過度に大きくなった場合、プロセッサ資源の最低 20 パーセントを保証することを意味しています。

Graphic

補足的な Web サーバーの例については、「Web フロントエンドプロセスの追加」を参照してください。

単一 Web サーバーにおける詳細な資源管理

単一 Web サーバー内で資源管理を使用して動作を制御するには、いくつか条件が必要なことがあります。たとえば、単一 Web サーバーは、それぞれが独自の cgi-bin プログラムを持つ多くのユーザーで共有されることがあります。

この場合に cgi-bin プログラムの 1 つでエラーが発生すると、Web サーバー全体で処理が遅くなることがあります。メモリーリークが発生した場合、Web サーバーがダウンする可能性さえあります。これを防ぐには、プロセス単位の制限が必要です。

Graphic

複数の仮想 Web サーバーの資源管理

複数の仮想 Web サーバーを実行するのに、統合した形で単一マシンを使用することがあります。このような場合、 httpd Web サーバープロセスのインスタンスが複数存在しているため、Solaris Resource Manager で資源を管理する必要性がもっとも高まります。

Web サーバー構成ファイルでパラメータを設定することで、異なる UNIX ユーザー ID で各 Web サーバーを実行させることができます。こうすることで、各 Web サーバーは、Solaris Resource Manager 階層にある異なる l ノードに効果的に接続されます。

たとえば、Sun WebServerTM の場合、構成ファイル /etc/http/httpd.conf に次のようなパラメータが設定されます。


# Server parameters
 server  {
   server_root                   "/var/http/"
   server_user                   "webserver1"
   mime_file                     "/etc/http/mime.types"
   mime_default_type             text/nlain
   acl_enable                    "yes"
   acl_file                      "/etc/http/access.acl"
   acl_delegate_depth            3
   cache_enable                  "yes"
   cache_small_file_cache_size   8                       # megabytes
   cache_large_file_cache_size   256                     # megabytes
   cache_max_file_size           1                       # megabytes
   cache_verification_time       10                      # seconds
   comment                       "Sun WebServer Default Configuration"
 
   # The following are the server wide aliases
 
   map   /cgi-bin/               /var/http/cgi-bin/              cgi
   map   /sws-icons/             /var/http/demo/sws-icons/
   map   /admin/                 /usr/http/admin/
 
 # To enable viewing of server stats via command line,
 # uncomment the following line
   map   /sws-stats              dummy                           stats
 }

各 Web サーバーを異なる UNIX ユーザー ID で実行するように構成することで、各 Web サーバーに個別に制限値を設定できます。多くの Web サーバーを実行しているマシンの場合、この方法は資源利用の制御と課金の両面でとても役立ちます。

このような場合、Solaris Resource Manager の資源制御と制限機能のほとんど、あるいはすべてを活用できます。

Shares [cpu.shares]

cpu.shares を使用していろいろな Web サーバーに特定の比率で資源を割り当てることができます。

Mem limit [memory.limit]

memory.limit を使用して、Web サーバーが使用する仮想メモリーの容量を制限できますが、これによって、ある Web サーバーが原因で、他の Web サーバーがメモリー割当による障害を発生することがなくなります。

Proc mem limit [memory.plimit]

プロセス単位のメモリー制限によって、1 つの cgi-bin プロセスが使用する仮想メモリーの容量を制限できます。これによって、cgi-bin プロセスが Web サーバーを停止させることを防止します。

Process limit [process.limit]

Web サーバーに接続できるプロセスの最大数を指定することで、同時に実行できる cgi-bin プロセスの数を効果的に制限します。