acct ファイル・フォーマット

目的

各プロセスのアカウンティング・ファイル・フォーマットを提供します。

説明

アカウンティング・ファイルは、システムの使用状況をモニターする手段を提供します。 これらのファイルは、プロセッサー使用量、資料、およびサービスの各プロセスに対する請求方法としても機能します。 アカウント システム呼び出しは、アカウンティング・ファイルを作成します。 /usr/include/sys/acct.h ファイルは、プロセスの終了時に書き込まれるこれらのファイル内のレコードを定義します。

acct 構造体

acct.h ヘッダー・ファイル内の acct 構造体には、以下のフィールドが含まれています。

項目 説明
ac_flag アカウンティング・レコードが書き込まれるプロセスについて、以下のいずれかのアカウンティング・フラグを指定します。
AFORK (航空機) プロセスは フォーク コマンドを使用して作成されましたが、 EXEC サブルーチンはまだ実行されていません。 EXEC サブルーチンは、AFORK フラグをオフにします。
ASU 社 プロセスが root ユーザー権限を使用しました。
ac_stat 終了状況を指定します。 プロセスがどのように終了したかを示すフラグ。
ac_uid アカウンティング・レコードが書き込まれるプロセスのユーザー ID を指定します。
ac_gid アカウンティング・レコードが書き込まれるプロセスのグループ ID を指定します。
ac_tty プロセスが開始された端末を指定します。
ac_wlmkey プロセスが属するワークロード・マネージャー・クラスを表す 64 ビットの数値キーを保持します。 ワークロード・マネージャー・アプリケーション・プログラミング・インターフェースには、キーをクラス名に戻すための wlm_key2class サブルーチンが用意されています。
ac_btime 開始時刻を指定します。 プロセスが開始された時刻。
ac_utime プロセスによって使用されたユーザー時間を秒単位で指定します。
ac_stime プロセスによって使用されるシステム時間の長さを秒単位で指定します。
ac_etime コマンドが実行されてから経過した時間を秒単位で指定します。
ac_mem プロセスによって使用されるメモリーの平均量を指定します。 クロック割り込み (またはクロック tick,100 /秒) ごとに、現行プロセスのユーザー・データを更新するために システム・タイマー ルーチンが呼び出されます。 プロセスがユーザー・モードの場合、その u_utime 値とメモリー使用量の値の両方が増分されます。それ以外の場合は、その u_stime 値のみが増分されます。 システム・タイマー ルーチンは、 VMS_RUSAGE ルーチンを呼び出して、TEXTSEG (#1)、PRIVSEG (#2)、およびビッグデータ・セグメント (#3-11) (使用されている場合) によって使用されている実メモリーのキロバイト数を取得します。 これらの値は、プロセスがカーネル・モードではない各クロック・ティックで合計メモリー使用量の値に加算されます。 プロセスが終了すると、 AcctExit ルーチンは、プロセスが (ユーザー・モードとカーネル・モードの両方で) 実行されている間に発生したクロック・ティックの数を計算し、合計メモリー使用量の値をこの数値で除算して、プロセスの平均メモリー使用量を算出します。 この値は、2 バイトの符号なし短整数として記録されます。
ac_io プロセスによって転送される文字数を指定します。
ac_rw プロセスによって読み取りまたは書き込みが行われたブロックの数を指定します。
ac_comm プロセスを開始したコマンドの名前を指定します。 フォーク サブルーチンによって作成された子プロセスは、この情報を親プロセスから受け取ります。 EXEC サブルーチンは、このフィールドをリセットします。

tacct 構造体

tacct 構造体は、 acct.h ヘッダー・ファイルの一部ではありませんが、さまざまなアカウンティング・コマンドによって使用される合計アカウンティング・フォーマットを表します。

struct tacct {
       uid_t ta_uid;          /* user-ID */
       char ta_name[8];       /* login name */
       float ta_cpu[2];       /* cum. CPU time, p/np (mins) */
       float ta_kcore[2];     /* cum. kcore-mins, p/np */
       float ta_io[2];        /* cum. chars xferred (512s) */
       float ta_rw[2];        /* cum. blocks read/written */
       float ta_con[2];       /* cum. connect time, p/np, mins */
       float ta_du;           /* cum. disk usage */
       long ta_qsys;          /* queuing sys charges (pgs) */
       float ta_fee;          /* fee for special services */
       long ta_pc;            /* count of processes */
       unsigned short ta_sc;  /* count of login sessions */
       unsigned short ta_dc;  /* count of disk samples */
};