通常會利用結合的方式,使單一機器作為多個虛擬網路伺服器的主機。這時,會存在多個 httpd 網路伺服器處理的實例,而且在 Solaris Resource Manager 中也有更多機會能夠充分利用資源控制。
也可能藉由在網路伺服器設置檔案中設定參數,將每個網路伺服器作為一個不同的 UNIX UID 來執行。這會有效地將每個網路伺服器附加至 Solaris Resource Manager 階層中一個不同的 lnode 之上。
例如,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
}
|
藉由設置每個網路伺服器,使其作為不同的 UNIX UID 來執行,您可以在每個網路伺服器上設定不同的限制。這對您控制與計算在作為許多網路伺服器的主機之一個機器上的資源用量時會非常有用。
這時您可以利用許多或是所有的 Solaris Resource Manager 資源控制和限制功能:
cpu.shares 可以用來成比例地將資源配置給不同的網路伺服器。
memory.limit 可以用來限制網路伺服器能用的虛擬記憶體量,以防止任何一個網路伺服器造成另一個伺服器因為記憶體配置的問題而故障。
每個處理記憶體限制可以用來限制一個單一 cgi-bin 處理可以使用的虛擬記憶體量,以便防止任何 cgi-bin 處理造成其各自的網路伺服器當機。
允許附加至一個網路伺服器上的最大處理總數,可以有效地限制同時進行的 cgi-bin 處理數目。