Solaris Resource Manager 程序可在用于保存属性值的内部单位之间进行转换,这样用户所看到的就是比例单位或者原始单位。这就是说,除少数例外情况以外,用户永远都不必关心 Solaris Resource Manager 所使用的内部单位。
exa(艾克)、peta(拍它)、tera(太拉)、giga(吉)、mega(兆)、和 kilo(千)等术语在 Solaris Resource Manager 中用于表示 2 的乘方,而非 10 的乘方。例如,一个兆字节表示 1,048,576 字节,而非 1,000,000 字节。每个术语表示的 2 的乘方分别是 60(exa)、50(peta)、40(tera)、30(giga)、20(mega)和10(kilo)。
作为用户与 Solaris Resource Manager 系统之间的主要界面的程序包括 limadm、liminfo 和 limreport。下面章节对它们所进行的转换和比例有详细介绍。
在更改属性数值时,limadm 可使数字采用比例字符作为后缀:[EPTGMK][B][.][wdhms].大写字母和小写字母可以互换。
如果属性具有存储的尺度(内存属性)或存储应计,则允许使用来自第一个组(EPTGMK)的字符。然后根据需要乘以字节的数目,如 1 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 可尝试从上下文中推理出其中的含义。如果这样做不可能,则应认为它表示兆,而非分钟。
在输入较大的数字时,这些转换字符可用来避免条目的数量级的乘方的错误,但是数量是以内部单位保存的,无论采用何种输入方法。
还可单独使用一个特殊的比例字符 u,但它只能用于内存属性值。它表示数字是以与计算机相关的单位(内部)而非字节存在的。
在报告为 limadm( 以便输入时,) liminfo1SRM 命令使用相同的前缀(如上所述)。一般地,liminfo 把数值转换成将要打印的相应的比例格式,但是 -r 选项可用于产生以原始(非比例)格式打印数值的 liminfo。例如,内存通常按照比例定为适当的单位,如兆字节(例如 '102 MB'),但指定 -r 选项使其以字节单位打印的(例如,106954752 字节)。
limreport(1SRM) 命令永远以原始(非比例)格式报告数值。如果要求比例数值,则必须在用于显示数值的表达式中公开陈述该转换。例如,要想以千字节为所有用户显示总虚拟内存,则应采用四舍五入方法转换到最近的千字节。
# limreport 'flag.real' '%-8.8s %d KB\n' lname '(memory.usage+1k-1)/1k' |
正如本例所表示的,您可以在表达式中的数字上使用比例前缀,从而简化了从原始单位到比例单位的转换。
请注意,某些属性的内部单位与其“原始”格式不同。一般地,用户不必关心这个问题,因为所有 Solaris Resource Manager 程序都进行从比例单位向原始单位的转换。但是这并不意味着在 limreport 中所选择的能规定在一定数目的字节上实现准确匹配的表达式肯定会在被指定的数字不是相关内部单位的整数倍的条件下匹配失败。