acct 파일 형식

용도

각 프로세스에 대한 사용통계 파일 형식을 제공합니다.

설명

사용통계 파일은 시스템의 사용을 모니터하는 수단을 제공합니다. 이들 파일은 또한 프로세서 사용, 재료 및 서비스에 대한 각각의 프로세스를 청구하기 위한 방법으로서의 역할을 한다. acct 시스템 호출은 사용통계 파일을 생성합니다. /usr/include/sys/acct.h 파일은 프로세스가 종료될 때 기록되는 이러한 파일의 레코드를 정의합니다.

acct 구조

acct.h 헤더 파일의 acct 구조에는 다음 필드가 포함됩니다.

항목 설명
ac_flag 사용통계 레코드가 기록되는 프로세스에 대해 다음 사용통계 플래그 중 하나를 지정합니다.
AFORK 프로세스가 fork 명령을 사용하여 작성되었지만 exec 서브루틴이 아직 수행되지 않았습니다. exec 서브루틴은 AFORK 플래그를 끕니다.
애리조나 주립 대학교 프로세스가 루트 사용자 권한을 사용했습니다.
ac_stat 종료 상태를 지정합니다. 프로세스가 종료된 방법을 표시하는 플래그입니다.
ac_uid 계정 레코드가 기록되는 프로세스의 사용자 ID를 지정합니다.
ac_gid 계정 레코드가 기록되는 프로세스의 그룹 ID를 지정합니다.
ac_tty 프로세스가 시작된 터미널을 지정합니다.
ac_wlmkey 프로세스가 속한 워크로드 관리자 클래스를 나타내는 64비트숫자 키를 보유합니다. 워크로드 관리자 API (Application Programming Interface) 는 wlm_key2class 서브루틴을 제공하여 키를 다시 클래스 이름으로 변환합니다.
ac_btime 시작 시간을 지정합니다. 프로세스가 시작된 시간입니다.
ac_utime 프로세스에서 사용되는 사용자 시간 (초) 을 지정합니다.
ac_stime 프로세스에서 사용되는 시스템 시간 (초) 을 지정합니다.
ac_etime 명령 실행 이후 경과된 시간 (초) 을 지정합니다.
ac_mem 프로세스에서 사용하는 평균 메모리 양을 지정합니다. 모든 클럭 인터럽트 (또는 클럭 tick,100 ), sys_timer 루틴은 현재 프로세스에 대한 사용자 데이터를 갱신하기 위해 호출됩니다. 프로세스가 사용자 모드에 있는 경우 u_utime 값과 메모리 사용량 값이 둘 다 증분됩니다. 그렇지 않으면 u_stime 값만 증분됩니다. sys_timer 루틴은 vms_rusage 루틴을 호출하여 TEXTSEG (#1), PRIVSEG (#2) 및 빅데이터 세그먼트 (#3-11) 가 사용하는 실제 메모리의 KB를 확보합니다. 이러한 값은 프로세스가 커널 모드에 있지 않은 동안 각 클럭 틱에서 총 메모리 사용량 값에 추가됩니다. 프로세스가 종료되면 acctexit 루틴은 프로세스가 실행되는 동안 (사용자 및 커널 모드 모두에서) 발생한 클럭 틱 수를 계산하고 총 메모리 사용량 값을 이 숫자로 나누어 프로세스에 대한 평균 메모리 사용량을 제공합니다. 이 값은 2바이트의 부호없는 짧은 정수로 기록됩니다.
ac_io 프로세스에 의해 전송되는 문자 수를 지정합니다.
ac_rw 프로세스에서 읽거나 쓴 블록 수를 지정합니다.
ac_comm 프로세스를 시작한 명령의 이름을 지정합니다. fork 서브루틴으로 작성된 하위 프로세스는 상위 프로세스에서 이 정보를 수신합니다. exec 서브루틴은 이 필드를 재설정합니다.

tacct 구조

acct.h 헤더 파일의 일부가 아닌 tacct 구조는 다양한 사용통계 명령이 사용하는 총 사용통계 형식을 나타냅니다.

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 */
};