假設您決定要在 Database1 之上放置一個網路前端處理,但又要限制這個應用程式一次不超過 10 位使用者。請使用處理限制功能來達成此目的。
首先,建立一個稱為 ws1 的新 lnode。藉由啟動 ws1 lnode 之下的 Webserver 應用程式,您便可控制可用的處理數目,因此而控制使用中的 http 作業階段數目。
因為 Webserver 是 Database1 應用程式的一部份,您可以賦予它一個 db1 lnode 的配分,並且允許它與 Database1 共享資源。配置百分之 60 的電腦資源給 Webserver 並且配置百分之 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 |
最後一行文字會啟動 Webserver 並且對 ws1 lnode 計費應用程式。請注意,對 Database1 來說,cpu.myshares 配置為 4,因而將 db1 與其子處理 Webserver 相爭的配分比率設定為 4:6。
cpu.shares 會顯示一個階層中同層資源配置的比率,而 cpu.myshares 會顯示雙親正積極執行應用程式時,親子層級的資源配置比率。Solaris Resource Manager 會依照所有使用中的 lnode 在其各自層級之尚未使用的配分來配置資源比率,而此 '各自層級' 包括群組雙親及所有子的 my.shares 。
要控制 Webserver 可以執行的處理數目,請在 ws1 lnode 之上加以處理限制。範例中使用 20,因為通常一個 Webserver 查詢會生成 2 個處理,所以事實上會將使用中的 Webserver 查詢數目限制為 10 個:
# limadm set process.limit=20 ws1 |
現在另一個應用程式也被新增至排程樹當中,作為使用中 lnode 之下的一個節點。要在使用中的雙親及子 lnode 之間分配 CPU 資源,請使用 cpu.myshares 來將某部份的可用資源配置給雙親,以及某部份給子 lnode 。程序限制可用來限制一個 lnode 之上正使用中的作業階段的數目。