系统管理指南:Oracle Solaris Containers-资源管理和 Oracle Solaris Zones

扩展记帐的工作原理

Solaris 操作系统中的扩展记帐功能使用一种版本化的可扩展文件格式来包含记帐数据。使用附带的库 libexacct(请参见 libexacct(3LIB))中提供的 API,可以访问或创建采用此数据格式的文件。然后,可以在启用了扩展记帐的任何平台上分析这些文件,并且可以使用其数据进行容量规划和费用分摊。

如果扩展记帐处于活动状态,则会收集可由 libexacct API 检查的统计信息。使用 libexacct 可以向前或向后检查 exacct 文件。API 支持由 libexacct 生成的第三方文件以及由内核创建的文件。使用 libexacct 的实用摘录和报告语言 (Practical Extraction and Report Language, Perl) 接口,可以开发自定义报告和摘录脚本。请参见libexacct 的 Perl 接口

例如,如果启用了扩展记帐,则任务会跟踪其成员进程的总体资源使用情况。任务完成时会编写任务记帐记录,还会编写有关正在运行的进程和任务的临时记录。有关任务的更多信息,请参见第 2 章

图 4–1 在激活了扩展记帐情况下的任务跟踪

流程图显示了如何将任务进程的总体资源使用情况捕获到任务完成时编写的记录中。

可扩展的格式

扩展记帐格式实际上比 SunOS 传统系统记帐软件格式(请参见《系统管理指南:高级管理》中的“什么是系统记帐?”)更具可扩展性。扩展记帐允许在不同发行版的系统中添加和删除记帐度量标准,即使在系统操作过程中也是如此。


注 –

系统上的扩展记帐软件和传统系统记帐软件可以同时处于活动状态。


exacct 记录和格式

用于创建 exacct 记录的例程具有两个用途。

此格式允许捕获不同形式的记帐记录,而不要求每次更改都是显式的版本更改。使用记帐数据且编写准确的应用程序必须忽略它们不了解的记录。

libexacct 库可转换和生成格式为 exacct 的文件。此库是 exacct 格式文件支持的唯一接口。


注 –

getacctputacct wracct 系统调用不适用于流。配置 IPQoS 流记帐之后,内核便会创建流记录并将其写入文件。


在安装了区域的 Solaris 系统上使用扩展记帐

当扩展记帐子系统在全局区域中运行时,它会收集和报告整个系统(包括非全局区域)的信息。全局管理员还可以确定每个区域的资源占用情况。有关更多信息,请参见安装了区域的 Solaris 系统上的扩展记帐