适用于 Solaris 2.6 (SPARC 平台版) 的 Solaris Resource Manager 1.0 系统管理指南

转换

Solaris Resource Manager 程序在用于存储属性值的内部单位之间进行转换,从而呈现给用户的总是已缩放单位或原始单位。这意味着,除个别情况外,用户几乎无需关心 Solaris Resource Manager 所使用的内部单位。

exa、peta、tera、giga、mega和 kilo 这些名词用于 Solaris Resource Manager 内部表示二的乘方,而不是10的乘方。例如,一个 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 均代表"兆字节小时"。当使用 M 后缀产生歧义时, limadm 试图从上下文推导出其含义。如果不可能,则假设为 mega(兆),而不是 minutes(分钟)。

在输入大数目时,这些转换字符有助于避免在录入量极顺序上发生错误,但无论其录入方法如何,数量均是以内部单位存储的。

还可以单独使用一个特殊的缩放字符 u,只能用于内存属性值。其所指示的数字是针对具体机器(内部)的单位,而不是字节。

liminfo 命令

liminfo(1SRM)命令报告时所使用的后缀与 limadm(1MSRM)输入时所使用的的后缀相同(见上述)。通常,liminfo 将值转换成适当的已缩放格式,以供打印输出,但可以用 -r 选项来促使 liminfo 以原始(未缩放)形式打印值。例如,通常会将内存缩放到一个合适的单位,诸如兆字节(例如,"102 MB"),但指定 -r 选项,将促使其以字节为单位进行打印(例如,106954752 字节)。

limreport 命令

limreport(1SRM)命令总是以其原始(未缩放)格式报告值。如果需要已缩放值,则在用于打印值的表达式中,必须明确地声明进行转换。例如,如要用兆字节显示所有用户的虚拟内存利用率,四舍五入到最靠近的兆字节:

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

正如此例所示,表达式中的数字是允许使用缩放后缀的,从而简化原始单位到已缩放数值的转换。

注意,某些属性的内部单位与其"原始"形式并不相同。通常,这无需用户注意,因为是 Solaris Resource Manager 程序进行从已缩放单位到原始单位的转换,但是这意味着,举例而言,limreport 中的选择表达式指定对字节数目进行精确的匹配,如果所指定的数目并非相关内部单位的一个整数乘积,则匹配总是失败。