適用於 Solaris 2.6 的 Solaris Resource Manager 1.0 系統管理指南(SPARC 平台版)

伺服器整合實例

第一個實例說明以下這些指令﹕

liminfo

將一或多位使用者的密碼屬性及限制資訊列印至一個終端機視窗

limadm

變更一組使用者的限制屬性或刪除限制資料庫登錄

srmuser

顯示或設定操作模式及系統 Solaris Resource Manager 的可調式參數

srmstat

顯示 lnode 活動資訊

如果將兩個伺服器整合至一個單一機器之上,每個伺服器都執行一個資料庫應用程式。只要在單一機器上執行兩個應用程式便可形成一個工作系統;不需要 Solaris Resource Manager,Solaris 作業系統也能根據公平使用的基礎來為應用程式配置資源,但是無法保護應用程式不與其他應用程式爭取資源需求。相反地,Solaris Resource Manager 可以提供防止應用程式嚴重缺乏資源的一種機制,其方法是啟始每個附加至參考 databases、db1db2 的 lnode 資料庫,。為達此目的,必須建立三個新管理位置保留符號使用者。例如, databasesdb1以及 db2。這些使用者被新增至 lnode 資料庫。既然 lnode 對應 UNIX UID,它們也必須新增人 passwd 檔(或密碼映射,如果系統使用一個命名服務,如 NIS 或 NIS+)。假設 UID 被新增至 passwd 檔或密碼映射,位置保留符號使用者 db1db2 會被指派給 databases lnode 群組,其指令為﹕

%  limadm set sgroup=0 databases
%  limadm set sgroup=databases db1 db2

假設 /usr/srm/bin 位於使用者的路徑。

圖 2-1 伺服器整合

Graphic

因為沒有其他定義的群組,databases 群組目前可以使用整個機器。會執行與資料庫有關的兩個 lnode,而執行資料庫應用程式的處理會利用資料庫實例啟始指令集中的 srmuser 指令,附加至適當的 lnode 上。例如,

% srmuser db1 /usr/bin/database1/init.db1
% srmuser db2 /usr/bin/database2/init.db2

啟始db1db2 其中任何一個資料庫時,使用 srmuser 指令以確保資料庫附加至正確的 lnode,而且收費正確(srmuser 這麼做不會影響處理的所有權)。要執行上述指令,一位使用者必須擁有執行 init.db1 的 UNIX 權限以及管理權限,才能將處理附加至 lnode db1 之上。當使用者登入並使用 databases 時,databases 所執行的活動都被累計至 lnode db1db2

藉由使用每個 lnode 一個配分的內定配置,databases 群組的使用量經過一段時間之後會取得平均,以確保 databases、db1db2 都能接收到相等的機器配置。尤其是 databases 群組-有一個可用的-配分,而且 databases 擁有它。每一個 lnode db1db2 都被賦予一個配分的內定配置。在 databases 群組之內,有兩個可用的配分,因此 db1db2 可以取得 databases 資源的相等配置(在這個簡單例子中並無相爭的配置,所以 databases 可以存取整個系統)。

如果發現 Database1 上的活動需要百分之 60 的機器的 CPU 功率,而 Database2 需要百分之 20 的功率,那麼管理員可以增加配置給 db1cpu.shares 數來指定系統至少可以提供這麼多(假設應用程式需要)﹕

%  limadm set cpu.shares=3 db1

databases 群組中有四個可用的配分;db1 中有三個,而 db2 中有一個。這個變更在一執行上述指令之後便馬上受到影響。在這一段過渡期當中,lnode db1 (Database1) 實際上會收到比其有權使用的百分之 60 還要多的機器資源,因為 Solaris Resource Manager 要花一點時間來平均使用量。不過當然視消減全域參數而定,這段時間不會太長。

要隨時監控此活動,請在不同的視窗中使用 liminfosrmstat指令﹕

%  liminfo -c db1
       # limit information shows all the data and 
       # settings for the lnode db1.

請參閱 "一個典型的應用程式伺服器"

此外,srmstat 還提供一種定期更新的顯示﹕

%  srmstat -ac      # srmstat shows the server activity and the 
                     # flag -ac sets a screen default update period 
                     # of 4 seconds to display the results.

有一部執行兩個資料庫應用程式的機器,一個接收資源的百分之 75,另一個則接收百分之 25。請牢記,超級使用者 (root) 是最高層的群組 header 使用者。因此作為 root 的處理會在需要時擁有整個系統的存取權。那麼如果建立一些額外的 lnode 以執行備份、精靈及其他指令集的話,root 處理便無法像傳統的執行方式一樣佔用整個機器。