第一個範例將說明下列這些指令:
在一個終端機視窗中列印一或多位使用者的使用者屬性及限制資訊
變更一組使用者的限制屬性或是刪除限制資料庫的項目
顯示或設定操作模式及擴及整個系統的 Solaris Resource Manager 可調參數
顯示 lnode 活動資訊
考慮在單一機器之上結合兩個伺服器的情況,每個伺服器執行一個資料庫應用程式。在單一機器上同時執行兩個應用程式將形成一個工作系統。不使用 Solaris Resource Manager,Solaris 系統會以同等使用為基礎,將資源分配給應用程式,並且不會保護應用程式不受其他應用程式的需求競爭。不過,Solaris Resource Manager 卻提供了一種防止應用程式資源匱乏的有效機制。有了 Solaris Resource Manager 之後,可先啟動與對應的 lnode 結點相連接的每個資料庫 db1 和 db2。要這麼做,必須建立三個新的管理位置保留符號使用者。例如: databases、 db1及 db2。將它們新增至限制資料庫;因為 lnode 與 UNIX UID 對應,這些也必須被新增至 passwd 檔案(或如果系統使用一個如 NIS 或 NIS+ 的名稱服務,則是密碼映射)中。假設 UID 被新增至 passwd 檔案或密碼對映中,位置保留符號使用者 db1 和 db2 會被以下列指令指派給 databases lnode 群組:
# limadm set sgroup=0 databases # limadm set sgroup=databases db1 db2 |
其中假設 /usr/srm/bin 位於使用者的路徑當中。
因為沒有其他定義的群組,databases 群組目前可以完全自由使用機器。與資料庫有關的兩個 lnode 會被執行,而執行資料庫應用程式的處理會被附加至正確的 lnode,以 srmuser 指令在資料庫實例的啟動指令集之中。
# srmuser db1 /usr/bin/database1/init.db1 # srmuser db2 /usr/bin/database2/init.db2 |
當您啟動資料庫 db1 或是 db2 時,請使用 srmuser 指令以確保資料庫附加至正確的 lnode 之上並且正確地計費 (srmuser 這麼做不會影響處理的所有權) 。要執行上述指令,使用者必須擁有執行 init.db1 所需的 UNIX 權限以及管理權限才能將處理附加至 lnode db1 之上。當使用者登入並使用資料庫時,資料庫所進行的活動會累積到 lnode db1 和 db2 之上。
藉由在每個 lnode 上使用一個配分的預設配置,databases 群組中的用量會在一段時間之後平均下來以確保資料庫 db1 和 db2 都能收到相等的機器配置。特別是 databases 群組有一個尚未使用的配分,而且 databases 擁有它。每一個 lnode db1 和 db2 也都被賦予一個配分的預設配置。在 databases 群組中,有兩個尚未使用的配分,因此 db1 及 db2 都取得 databases 資源之相等分配(在此簡單範例中,並沒有競爭分配的情況,所以 databases 可使用整個系統)。
如果後來發現 Database1 上的活動需要機器百分之 60 的 CPU 功率而 Database2 需要百分之 20 的話,管理員可以藉由增加配置給 db1 的 cpu.shares 數目,以指定系統提供至少這麼多的資源 (假設應用程式提出要求):
# limadm set cpu.shares=3 db1 |
現在 databases 群組中有四個尚未使用的配分;db1 有三個,而 db2 有一個。這個變更會在執行上述指令之後立即受到影響。當 lnode db1 (Database1) 實際收到多於其應得的百分之 60 之機器資源之前,會有一段適應期,因為 Solaris Resource Manager 必須在一段時間內平均用量。不過視消減全球參數而定,此時期不會持續太久。
要隨時監控此活動,請在分開的視窗當中使用 liminfo (請參見 一個典型的應用程式伺服器) 及 srmstat 指令。請注意,srmstat 會提供一個定期更新的顯示畫面。欲知更多有關 srmstat 的額外資訊,請參見 srmstat(1SRM)。
現在您有一部執行兩個資料庫應用程式的機器,其中一個收到百分之 75 的資源,而另一個則收到百分之 25。請記住,root 是最高階的群組標頭使用者。因此作為 root 執行的處理,如果想要的話,便可取得整個系統的存取權。因此,應該建立額外的 lnode 以便執行備份、常駐程式及其他指令集,而讓 root 處理不可能佔用整個機器的資源。這是如依照傳統方式來執行的話很可能會發生的狀況。