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

轉換

Solaris Resource Manager 程式可以變換用來內存屬性值的內部單位,因此使用者得以讀取定標單位或是原始單位。亦即除了少數情況之外,使用者多半不需要懂得 Solaris Resource Manager 所使用的內部單位。

Solaris Resource Manager 使用 exa、peta、tera、giga、mega 及 kilo 這些詞來代表二次方而非十次方。例如,megabyte 代表 1,048,576 位元組,而非 1,000,000 位元組。所以它們分別為二的 60 次方 (exa)、二的 50 次方 (peta)、二的 40 次方 (tera)、二的 30 次方 (giga)、二的 20 次方 (mega) 以及二的 10 次方(kilo)。

作為使用者以及 Solaris Resource Manager 系統間主要介面的程式為 limadm(1MSRM)liminfo(1SRM) 以及 limreport(1SRM)。它們所執行的轉換與定標會在下列的小節中做詳細說明。

limadm 指令

當變更屬性值的時候,limadm 容許數字後附加定標字元﹕ [EPTGMK][B][.][wdhms]。大小寫字母可以互換。如果屬性包含內存(記憶體屬性)或內存累計的維,那麼便採用第一個群組 (EPTGMK) 中的一個字元,再乘以 exabyte (E), petabyte (P)、terabyte (T)、gigabyte (G)、megabyte (M) 或 kilobyte (K) 的位元組數。選擇性的 B 字元可以附加其後,只是為了讓人瞭解,但沒有實際功效。如果屬性包含時間(鍵入日期或時間)或內存累計的維,那麼便從第二個群組採用一個字元,再乘以一個星期 (w)、天 (d)、小時 (h)、分鐘 (m) 或秒 (s) 的秒數。您可以選擇以一個句點來分別內存及時間單位(例如 mh、M.h 及 MB.h 全都代表 'megabyte' 小時)。M 字尾的意義不明確, limadm 會試著從上下文判斷它的實際意義。如果分不清,則假設它為 mega,而不是分鐘。

這些轉換字元在輸入大的數字時很有用,可以避免登錄數量級的錯誤;不過不論登錄方法為何,其數量都是以內部單位來內存的。

您也可以單獨使用一個特殊的定標字元 u,但只能用於記憶體屬性值。它表示數字為機器的(內部)單位而非位元組。

liminfo 指令

liminfo(1SRM) 指令使用的報告字尾和 limadm(1MSRM) 使用的輸入字尾相同(請見上述內容)。一般而言,liminfo 會將數值轉換為適當的定標格式來列印,但是可以使用 -r 選項,讓 liminfo 以其原始(未定標)格式來列印數值。例如,記憶體通常被定標為一種適當的單位,例如megabyte(如 '102 MB'),但是若指定 -r 選項,則會以位元組來列印記憶體(如 106954752 位元組)。

limreport 指令

limreport(1SRM) 指令通常是以原始(未定標)格式來報告數值。如果需要定標數值,顯示此數值的表達式中必須明確地說明轉換。例如,要以 kilobyte 來顯示所有使用者的虛擬記憶體使用總量,必須使數字入於最接近的 kilobyte﹕

# limreport 'flag.real' '%-8.8s %d KB\n' lname '(memory.usage+1k-1)/1k' 

如此例所示,表達式中的數字上可以使用定標字尾,以簡化將原始單位到定標數值的轉換。

請注意,某些屬性的內部單位和其 '原始' 格式並不相同。通常使用者不需要擔心這一點,因為所有的 Solaris Resource Manager 程式都會自行轉換為定標單位或原始單位。這表示,如果 limreport 中的選取表達式指定的數字不為相關內部單位的一個整數倍數的話,那麼便永遠無法符合一個特定的位元組數。