IT 組織通常被要求要控制成本並且為企業應用保證服務品質。資源管理有助於降低所有權的整體花費,對何人使用系統及其使用方式有較精確的控制,甚至可以同時達成兩個目標。
藉由使用 Solaris Resource Manager 軟體來分類與優先化資源的使用,管理員可以在離峰期間有效地利用保留的功能,減少對額外處理功能的需求。
Solaris Resource Manager 藉由系統來分別工作量,好讓系統管理員執行與管理單一系統之上的各類應用程式,而不是將整個-具有最尖峰功能- 的系統分配給每個應用程式。傳統而言,確保可靠的服務以及回應時間最常見的方式是讓每個系統作為一個功能的主機。這個方法行得通,但是不斷擴張資料中心的系統卻是昂貴又難於管理。
Solaris Resource Manager 可以用來將數種應用程式在單一 UNIX® 伺服器之上整合,以便充分利用所有可用的資源。同時所有的使用者也可以收到與其服務層級和工作重要性成比例的資源。
下表將簡單介紹本手冊即將說明的關鍵性系統資源控制功能。
系統資源 | Solaris Resource Manager 參數 | 說明 |
---|---|---|
CPU 配分 | cpu.shares | 配置給一個 lnode 的 CPU 時間總量,在限制資料庫檔案中指定為特定的配分。Solaris Resource Manager 會配置所有可用的系統資源,也就是說一個 lnode 可以在資源可用時,收到較其配置的分量還要多的資源。 |
CPU 累積 | cpu.accrue | 群組中所有 lnode 以及目前 lnode累積的 CPU 使用量。 |
記憶體限制 | memory.limit | 附加至一個 lnode 的所有處理可得的最大虛擬記憶體使用量。此限制為固定的數值,由限制資料庫檔案所指定。零值表示沒有設定任何的限制。 |
處理記憶體限制 | memory.plimit | 每個處理最大的虛擬記憶體限制。此限制為固定的數值,由限制資料庫檔案所指定。零值表示沒有設定任何的限制。 |
物理記憶體限制 | rss.limit(僅限於 Solaris 8) | 具備特定單位的物理記憶體運算,應用到連接至 lnode 的處理程序集合。運算必須是正數。 |
記憶體累積 | memory.accrue | 在一段時間之內所使用的整體記憶體資源。其數值以每秒位元組數表示。 |
處理數目 | process.limit | 限制使用者可以同時執行的處理數目,根據限制資料庫檔案所指定的固定限制。 |
每位使用者的登入數目 | flag.onelogin flag.nologin | 根據限制資料庫檔案所指定的固定限制來限制每位使用者/或排程群組的登入或限制同時登入作業階段的數目。Solaris Resource Manager 會使用 PAM 辯證記錄及 utmp(4) 項目來追蹤登入計數。計數器會動態遞增或遞減。 |
連線時間 | terminal.limit terminal.usage terminal.accrue | Solaris Resource Manager 動態式地追蹤一位使用者的連線時間並且將它與限制資料庫檔案中系統管理員或群組標頭所指定的固定限制做比較。當一位使用者接近連線時間限制時,Solaris Resource Manager 就會送出警告訊息給使用者的終端機。達到限制時,使用者會被通知,然後在短暫的寬限期之後被迫登出。 |
Solaris Resource Manager 可以提供各種情況之下的有效資源控制,包括伺服器整合,Internet 服務供應商 (ISP) 網路主機,管理擁有大量或多元性的使用者人口的網站,並且建立策略以確保重要的應用程式都能取得所需的回應時間。
Solaris Resource Manager 最適合於在單一伺服器之上整合多項應用程式的環境。管理數個機器的成本及複雜度讓系統管理員願意考慮將應用程式整合在一個大型、可調整規模的系統之上。有了 Solaris Resource Manager 之後,要達成此經濟規模的目標相形之下就容易得多。
舉例來說,一個單一 Sun 伺服器可以為各種不同的客戶機、傳訊/郵件服務、全球資訊網服務以及以任務為考量的資料庫應用程式提供應用程式、檔案以及列印服務。由於 Sun EnterpriseTM 伺服器包含 1 到 64 個處理機不等,一個伺服器可以設置為供數個部門共用或整個機構來使用。拿其他的伺服器整合方案來說,其發展、協定和生產環境都結合在一個單一的大型機器之上,例如 Sun Enterprise 10000 或是 Sun Enterprise 6500,而不是由三個個別的伺服器來負責。其他整合專案還是與單一機器或是多重資料交易站結合資料庫及應用程式伺服器。無論應用程式類型或設置為何,Solaris Resource Manager 有助於根據既定的策略,確保將系統資源配置給所有的使用者、應用程式及群組。重要的應用程式會受到保護,因為要保證它們取得所需的可得系統資源。
過去 ISP 必須為每個客戶機指派一個專屬機器,造成極大的花費和麻煩。同樣地,ISP 也可以利用 Solaris Resource Manager 來在單一機器上主持許多(也許上千個)網路伺服器。Solaris Resource Manager 允許管理員控制與每個網站有關的資源佔用,防止它們每一個因超出使用量而影響到其他的網站。Solaris Resource Manager 也能防止出錯的 CGI 指令集耗盡 CPU 資源,或防止使用者應用程式釋出所有可用的虛擬記憶體。
Solaris Resource Manager 可以用來防止批次工作量阻礙目前進行中的商業活動及其他批次工作。
Solaris Resource Manager 有助於管理任何擁有大量多樣化使用者群的系統資源,例如教育機構。(事實上,Solaris Resource Manager 的前身是一種早期的 CPU 資源排程器,由雪梨和新南威爾斯大學所開發)。為了因應工作量各不相同的需求,Solaris Resource Manager 軟體可以設置來符合特定使用者的需要。例如,大型證券經紀公司的交易商會間斷地需要快速存取權,以進行計算操作或提出查詢。不過其他系統使用者的工作量卻比較穩定。如果交易商取得比較大量的處理能力,Solaris Resource Manager 會確保所有的使用者各取所需,擁有適合的回應。
Solaris Resource Manager 提供管理系統中各種重要資源佔用情況的功能,例如處理機時間、虛擬記憶體、處理計數、登入計數以及連結時間。Solaris Resource Manager 管理模式又新增了靈活度,可以在一個階層之間授權管理權限,資料中心的員工便不需要參與群組內部的管理交易。此外,Solaris Resource Manager 提供搜集資源使用資料的機制,可被應用於功能規劃或是收費等的目的。
操作系統其中一個基本工作就是斷定由哪一個處理來存取系統的資源。預設的 Solaris 時間配分 (TS) 排程器會試著給予每個處理相當公平的系統資源存取權。存取限制被套用至沒有實體記憶體資源卻不被允許執行的處理,以及有被禁止的暫停 I/O 要求的處理。
這種體系是大多數現代作業系統的基礎,比較適合"人人公平存取"的組織策略。然而,其他的策略可能就需要實施更加精密的機制才行。例如製造部門擁有一個大型系統,因為季節性需求的波動爾經常沒有完全利用。同時工程部門幾乎總是需要更多的電腦計算循環。雖然不充分利用大型機器的資源是件非常浪費的事,傳統上來說要與工程部門共用製造系統是非常困難的。簡單的排程策略無法指示作業系統如何分辨製造部門的使用者比相同系統上的工程部門還要來得重要。如果製造有一項需要佔用系統資源的百分之 75 的重要工作,此工作在其他所有工作只要求百分之 25 的系統或更少的情況下就可以順利進行。然而,如果一個工程任務需要百分之 50 的系統,那麼這項重要的製造工作就可能無法取得保持進度所需的資源,因為系統會為了公平而嘗試滿足兩種工作的需求。
假定管理員決定製造部門的普通處理需求可以利用百分之 80 的機器功率來達成。系統管理員可以使用 Solaris Resource Manager 來指定製造部門的使用者,只要提出要求的話,就可以取得多達百分之 85 的系統處理能力;而排程器會將剩餘的資源分配給其他任何使用者。另一種極端但有效的設置可以指定製造部門使用者於必要時取得百分之百的系統,而當製造部門確實需要整個系統的時候完全不讓其他群組的處理執行。
Solaris Resource Manager 提供一種新的 CPU 排程類別,取代標準的分時排程器。這個模組稱為 SHR 排程器類別,採行一種稱為公平分享的排程器。「公平」這個字有一點誤導,因為實際上是系統管理員負責決定什麼才是「公平」。在上面一例中,「公平」指的是製造部門可以取得百分之百的系統。SHR 排程器負責根據管理概要檔中的規劃來分配資源。
Solaris Resource Manager 維持一個資源使用量及相關限制的資料庫。
SHR 排程器會考慮資源保證的管理規格。它可以管理可更新的(例如 CPU 時間)或固定的(例如登入計數)資源。
其他 Solaris Resource Manager 模組進行各種資源的佔用情況限制。例如連結時間和使用者登入計數是藉由一個可插式辨證模組 (PAM) 來管理。PAM 模組會在每一次有一個使用者嘗試登入時向 Solaris Resource Manager 資料庫求證。一旦系統辨證該使用者(一般是核對其密碼),就會核對使用者的連結時間和目前登入的計數是否符合限制規定。如果超過其中一項限制,登入就會被拒。
Solaris 作業環境包括數種其他功能,提供對特定種類資源的控制。某些功能,如即時排程、nice(1),配額及處理機組,都是基本 Solaris 系統的部份。
頻寬配置器是不附屬於產品的一種套裝軟體,動態系統領域是 Sun Enterprise 10000 系統平台的功能,而動態重新設置則是 Sun Enterprise 系統平台的一種功能。
所有這些組件都提供各種資源管理,但每一種都與 Solaris Resource Manager 的功能有所不同。
即時排程
標準 Solaris 作業系統會使用 TS 排程類別來進行傳統式的工作,但它也提供有權限的使用者即時 (RT) 排程的功能。RT 排程類別會實行一種非常不同的(而且重要的)排程政策,以確保特定的工作量或處理可以立即存取處理機。
Solaris Resource Manager 可以與 RT 排程類別同時存在相同系統之上,但它對任何 RT 類別執行的處理沒有控制權。Solaris Resource Manager 公平配分排程器只能管理沒有執行 RT 排程類別的處理的 CPU 時間資源。例如在一個有四個處理機的系統之上,單一執行緒的處理可以消耗一整體處理機;事實上,如果提出要求的處理受到 CPU 的限制的話,就會如此。如果系統也執行 Solaris Resource Manager,一般使用者處理就會爭相使用三個尚未被即時處理所用的 CPU。(請注意即時處理可能不會繼續使用 CPU。當它閒置時,Solaris Resource Manager 就會利用所有四個處理機。)
nice ( 1)指令
nice 指令允許使用者操控其執行優先順序。沒有超級使用者權限,這個指令只能允許使用者降低其優先順序。這個有時會是一種有用的功能(例如當一個使用者從其互動式登入階段作業開始一項低優先順序的批次工作),但是它有賴於使用者採取合作態度。Solaris Resource Manager 仍然可以在使用者不合作的情況下強制執行其管理策略。
配額
管理員可以利用 Solaris 檔案系統的配額機制來限制個別使用者的磁碟佔用情況。這種功能和 Solaris Resource Manager 並無直接關係。
處理機設定
Solaris 2.6 中新增了處理機群集。管理員可以利用這個特性來將多處理機系統分為邏輯群組,並且讓使用者啟動這些群組內的處理。其好處在於一個處理機群集之內執行的工作量不受任何其他的處理機群集中 CPU 活動的干擾。在某一方面而言,這個功能和 Solaris Resource Manager 類似,不過這兩種特點是基於完全不同的基礎之上。處理機群集只控制 CPU 操作。此種控制屬於一種不太精確的硬體層級,因為處理機一次可以完全屬於一個處理機群集。特別是在比較小型的系統上,精確度可能會比較差:在一個擁有四個處理機的系統上,可以指派的最基本的資源量是系統的百分之 25。
Solaris Resource Manager 有比較精細的控制;每位使用者會被配置一定配分的系統資源。配分可以依照精細的量來隨意分配,而排程器會據以配置資源。例如,如果賦予 50 分,而一位使用者有其中 40 分,該使用者會取得 40 / 50 = 百分之 80 的資源。同樣地,如果總共賦予 67 分,那麼有 57 分的使用者會取得百分之 85 的資源。此外,Solaris Resource Manager 還可以控制 CPU 以外的資源。請參見處理機組的角色及功效 中有關 Solaris Resource Manager 及處理機組之間的互動資訊。
動態系統領域
Sun Enterprise 10000 擁有一種稱為動態系統領域的功能,允許管理員邏輯式地將單一系統架分為一或多個獨立的系統,就好像主機上的同位素功能。每一個系統執行自己的 Solaris 版本。例如,一個在 8 個系統板上有 32 CPU 的機器,可以分為一個有 16 CPU 的單一系統,以及其他兩個有 8 CPU 的系統。在這種設置之下,會執行三個不同的 Solaris 實例。動態系統領域也提供將資源送進或送出每一個 Solaris 實例的管理工具,因此建立相當有用的實體資源管理設施。(領域內配置的最小單位為一整個系統板。)
Solaris Resource Manager 類似動態系統領域,其中也提供管理員配置資源的機制,但方法不同。Solaris Resource Manager 會執行單一的 Solaris 實例,對該系統資源提供較精確的管理控制。Solaris Resource Manager 可以用來在一個 Sun Enterprise 10000 系統之上,將資源在一個 Solaris 實例中的許多使用者和應用程式之間分配,並且與動態系統領域配合使用。
動態再配置
Sun Enterprise 伺服器的動態重新設置功能可以讓使用者動態式地新增與刪除系統轉接板,其中包含如處理機、記憶體和 I/O 裝置等硬體資源。記憶體之上的動態再設置操作無法對於 Solaris Resource Manager 記憶體限制檢查產生任何影響。
Solaris 頻寬管理員
Solaris 頻寬管理員屬於一種獨立式的套裝模組,可以與 Solaris kernel 配合使用來限制網路頻寬的佔用情況。Solaris 頻寬管理員是一種資源管理軟體,可以應用於不同類別的資源。Solaris Resource Manager 及頻寬管理員有不同而分立的管理領域:Solaris Resource Manager 是以使用者或應用程式的基礎上操作的,而Solaris 頻寬管理員則是以連接埠、服務或協定的基礎上進行管理。
Solaris Resource Manager 產品與系統中所含的許多其他軟體組件有關,但它無法取代其中任何一項。
Solaris Resource Manager 及 Solaris 頻寬管理員管理不同類型的資源。
Solaris Resource Manager 並不像 Sun Management Center 是一種系統監控器。
Solaris Resource Manager 不真的是一種功率計劃工具。雖然它有助於管理員管理功率,而且其會計功能可以建構使用量記錄,讓管理員利用來進行趨勢分析,但它不像傳統執行功率計劃的功能。
Solaris Resource Manager 並非一種工作排程器,它負責控制處理如何,而不控制何時或何處在其主機系統上執行。
因為 Solaris Resource Manager 只在單一系統之上操作,不能作為在群集成員間實行載入平衡的機制。不過 Solaris Resource Manager 可以有效利用以在一個群集的每位成員上管理其個別的工作量。例如,可以安排讓高可用性群集的失敗成員之工作量順序在等候成員上執行的背景工作量之前。