Resource Constraints
In order to provide predictable quality of service levels to customers, the amount of CPU and virtual memory available to each customer must be specified. The Solaris_ Resource Manager software release 1.2 can be used to provide this functionality. The command srmuser(1SRM) can be used to specify which set of resource limits are assigned to each web server. Each customer's admin account serves as limit nodes (lnodes) for this purpose. The script /usr/apache/bin/apachectl can be further modified to setup the resource limits before invoking the web server:
HTTPD="/usr/srm/bin/srmuser -l ${CUSTOMER}admin \n /usr/apache/bin/httpd -f ${CONF_DIR}/http.conf" |
The srmuser command requires the privilege sys_devices to associate a process with an lnode. Therefore, the process attributes for the command apachectl in the c1 and c1 Rights profiles require the following additional privilege:
c1:tsol:cmd:::/usr/apache/bin/apachectl:uid=nobody; gid=webserver;clearance=C1 HTTP FTP CGI;label=C1 HTTP FTP; privs=proc_owner,net_privaddr,sys_devices |
Since the Web server runs as uid nobody, but with the limits of c1admin, the account should be specified as a subgroup of nobody as follows:
# /usr/srm/sbin/limadm set sgroup=nobody c1admin |
For more information on resource limits, refer to the section Resource Management of Multiple Virtual Web Servers in the Sun BluePrints article, Solaris™ Resource Manager (April 1999)6.