On se sert souvent d'un seul ordinateur pour héberger plusieurs serveurs Web virtuels de manière regroupée. En tel cas, plusieurs instances du processus httpd du serveur Web sont présentes et on peut tirer bien davantage profit du contrôle des ressources par l'entremise de Solaris Resource Manager.
On peut lancer chaque serveur Web à titre d'UID UNIX différente en définissant un paramètre dans le fichier de configuration du serveur Web. Ainsi, on fait correspondre chaque serveur Web à un noeud limite différent dans la hiérarchie de Solaris Resource Manager.
Par exemple, le Sun WebServerTM comporte les paramètres suivants dans le fichier de configuration /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 } |
En configurant chaque serveur Web en vue d'une exécution selon une UID UNIX distincte, il est possible de définir des limites différentes pour chaque serveur Web. Cet aspect s'avère particulièrement utile si on souhaite contrôler et comptabiliser la consommation des ressources sur un ordinateur qui héberge plusieurs serveurs Web.
On peut ainsi se servir de plusieurs ou de tous les contrôles et limites des ressources de Solaris Resource Manager :
On peut se servir de cpu.shares pour attribuer proportionnellement les ressources à différents serveurs Web.
On peut utiliser memory.limit pour limiter la quantité de mémoire virtuelle dont le serveur Web peut se servir. On évite ainsi qu'un serveur Web provoque la panne d'un autre serveur en raison d'une erreur d'attribution de mémoire.
La limite de mémoire par processus sert à limiter la quantité de mémoire virtuelle qu'un processus cgi-bin peut utiliser. Ainsi, un processus cgi-bin ne pourra jamais faire tomber en panne son serveur Web respectif.
En précisant le nombre total maximal de processus qui peuvent se relier à un serveur Web, on peut restreindre le nombre de processus cgi-bin qui s'exécutent simultanément.