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