管理员必须决定需要向哪些 lnode 记取资源利用率费用。例如,管理员可能只关心为整个的部门记费,因而可能只希望为顶层组的组头目记费,该组头目的应计利用率将包括其部门内较底层次的 lnode 的所有应计利用率。
管理员为了能够实现一个记费系统,就必须为每个要记费的资源确定一个费收功能。这可以是一个简单的线性关系(即无论实用数量如何,单位费用一样),也可以是一个非线性关系,诸如步进功能,或者单位费用随着利用率数量的变化而变化的曲线。
管理员在为每种资源确定费收功能的同时,应当牢记,费收功能不但要对将费用指派给应计资源利用率进行控制,还要对用户使用资源的方式施加影响。例如,如果虚拟内存利用率的费收系统促使单位费用随着利用率数量的增加而增加,则会强烈激励用户降低虚拟内存利用率。因此,管理员是有可能借助适当的费用策略来对用户的行为加以控制的。
每种资源只有一个应计属性。该属性包含以该资源的利用率属性为基础得出的该资源的应计利用率。这意味着,没有对应于 myusage 属性的应计利用率。对于组头目,没有针对单个用户的应计利用率,因为应计属性包含的是组的应计利用率。对于没有子用户、叶 lnode 的 lnode,这并无不妥,因为myusage 属性和利用率属性是相同的。如果需要为某一组头目的单个应计利用率开出帐单,则其计算方法就必须是从组总计中减去组中每个子用户的单个总计的总和。
liminfo(1SRM)命令的默认输出是为希望找出其当前的利用率、限制、特权等信息的用户而设计的。liminfo 对想要查询其他用户的属性的用户十分有用。可以要求得到多个不同的报告格式,其中包括选项,可用于使 liminfo 的输出适合于过滤器管道的处理。请参考 liminfo(1SRM),了解命令行选项及其含义的细节,以及对可以显示的字段的描述。
limreport(1SRM)命令使得管理员可以查询任意用户的任意选项,其中包括应计属性。该命令提供有一个灵活的方法,用于选择需要显示的所选 lnode 的信息。
例如,命令:
% limreport 'cpu.accrue!=0' '%u %u %10d\n' uid lname cpu.accrue |
选择 usr 域中的带有任何应计利用率的所有 lnode,并列出每个所选 lnode 的 UID和应计利用率。要借助 cpu.accrue 对这些值进行排序,并只列出前十个用户很容易,只需将结果传导到一个排序命令。
% limreport 'cpu.accrue!=0' '%u %u %10d\n' uid lname cpu.accrue | sort -2n | head |
limadm(1MSRM)命令可以用于记费系统内部,在记费之后将应计属性清零。例如,命令::
# limreport 1 '%u\tcpu.accrue=0,mem.accrue=0\n' uid | limadm set -u -f |
使用 limreport(1SRM)命令,生成一个命令列表,传导到 limadm。每个lnode 均被选择,且每个 lnode 的应计属性均被清零。
管理员在决定何时清除某一 lnode 的应计属性时一定要谨慎。定时要取决于记费策略。例如,如果要在组层次生成帐单,然后又为组成员生成单个的帐单,则在生成两种帐单之前不要清除组成员的应计属性。但是,如果不需要生成单个帐单,则在清除组头目的应计属性的同时应当清除组成员的应计属性,尽管后者可能从未单独使用过。