Solaris オペレーティングシステムの拡張アカウンティング機能は、バージョン番号が付けられた拡張ファイル形式を使用してアカウンティングデータを格納します。このデータ形式を使用するファイルは、添付のライブラリ libexacct (libexacct(3LIB) のマニュアルページを参照) で提供される API を使ってアクセスまたは作成できます。作成されたファイルは、拡張アカウンティング機能を使用できる任意のプラットフォーム上で解析でき、データを容量計画や課金に使用できます。
拡張アカウンティングを起動すると、libexacct API で調べることができる統計情報が収集されます。libexacct は、exacct ファイルを前後どちらの方向からでも検査できます。API は、カーネルが作成するファイルだけでなく、libexacct によって生成された他社製のファイルもサポートします。libexacct に対する Perl (Practical Extraction and Report Language) インタフェースが用意されています。これを使えば、報告および抽出用のカスタムスクリプトを開発できます。「libexacct に対する Perl インタフェース」を参照してください。
たとえば、拡張アカウンティングを有効にすると、タスクは、自分のメンバープロセスの総資源使用状況を追跡します。タスクのアカウンティングレコードは、そのタスクの完了時に書き込まれます。実行中のプロセスやタスクについて中間レコードを書き込むこともできます。タスクの詳細については、第 2 章プロジェクトとタスク (概要)を参照してください。
拡張アカウンティングの形式は、古い SunOS システムのアカウンティングソフトウェアの形式に比べて拡張性があります (『Solaris のシステム管理 (上級編)』の「システムアカウンティング」を参照)。拡張アカウンティングでは、システムアカウンティングメトリックスのシステムへの追加や削除をシステムの解放時またはシステムの操作中に行うことができます。
拡張アカウンティングと古いシステムのアカウンティングソフトウェアの両方をシステム上で同時に起動できます。
exacct レコードを作成するルーチンは、次の 2 つの目的で使用できます。
他社製の exacct ファイルを作成できるようにします。
putacct システムコールを使ってカーネルアカウンティングファイルに埋め込むためのタグ付けレコードを作成できるようにします (getacct(2) のマニュアルページを参照)。
Perl インタフェースから putacct システムコールを利用することもできます。
この形式では、すべての変更を明示的なバージョン変更にしなくても、さまざまな形式のアカウンティングレコードを取得できます。アカウンティングデータを使用するアプリケーションは、認識不可能なレコードを無視するように作成する必要があります。
libexacct ライブラリは、ファイルを exacct 形式に変換し、その形式のファイルを生成します。このライブラリは、exacct 形式のファイルに対するインタフェースとしてサポートされている唯一のインタフェースです。
getacct、putacct、wracct の各システムコールは、フローには適用されません。IPQoS フローアカウンティングの構成時には、カーネルによってフローレコードが作成され、ファイルに書き込まれます。
拡張アカウンティングサブシステムを大域ゾーンで実行した場合、非大域ゾーンを含むシステム全体の情報が収集および報告されます。大域管理者は、ゾーンごとの資源消費を決定することもできます。詳細は、「ゾーンがインストールされている Solaris システムでの拡張アカウンティング」を参照してください。