AWR snapshot 데이터중 하나이다
AWR
- AWR snapshot은 기본적으로 1시간에 한번씩 기록된다
- snapshot은 수동으로 찍을 수 있고
(EXEC DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();)
- snapshot 주기도 변경가능다
(EXEC DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(interval =<new_interval_in_minutes>); )
- snapshot은 SYSAUX tablespace에 저장이 되고
- 보관주기또한 변경 가능하다
(EXEC DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(retention => <new_retention_in_days>);)
- DBA_HIST_ 로 시작하는 뷰들로 AWR snapshot의 데이터를 볼 수 있다
view 결과 출력
SNAP_ID DBID INSTANCE_NUMBER STAT_ID STAT_NAME VALUE CON_DBID CON_ID
---------- ---------- --------------- ---------- ---------------------------------------------------------------- ---------- ---------- ----------
1984 1693790396 1 1010 VM_OUT_BYTES 17268736 1693790396 0
1984 1693790396 1 1011 FREE_MEMORY_BYTES 376930304 1693790396 0
1984 1693790396 1 1012 INACTIVE_MEMORY_BYTES 2357469184 1693790396 0
1984 1693790396 1 1013 SWAP_FREE_BYTES 8575242240 1693790396 0
1984 1693790396 1 2000 TCP_SEND_SIZE_MIN 4096 1693790396 0
1984 1693790396 1 2001 TCP_SEND_SIZE_DEFAULT 16384 1693790396 0
1984 1693790396 1 2002 TCP_SEND_SIZE_MAX 4194304 1693790396 0
1984 1693790396 1 2003 TCP_RECEIVE_SIZE_MIN 4096 1693790396 0
1984 1693790396 1 2004 TCP_RECEIVE_SIZE_DEFAULT 87380 1693790396 0
1984 1693790396 1 2005 TCP_RECEIVE_SIZE_MAX 6291456 1693790396 0
1984 1693790396 1 2006 GLOBAL_SEND_SIZE_MAX 1048576 1693790396 0
SNAP_ID DBID INSTANCE_NUMBER STAT_ID STAT_NAME VALUE CON_DBID CON_ID
---------- ---------- --------------- ---------- ---------------------------------------------------------------- ---------- ---------- ----------
1984 1693790396 1 2007 GLOBAL_RECEIVE_SIZE_MAX 4194304 1693790396 0
1983 1693790396 1 0 NUM_CPUS 8 1693790396 0
1983 1693790396 1 1 IDLE_TIME 3204360776 1693790396 0
1983 1693790396 1 2 BUSY_TIME 7761519 1693790396 0
1983 1693790396 1 3 USER_TIME 4754816 1693790396 0
1983 1693790396 1 4 SYS_TIME 2990271 1693790396 0
1983 1693790396 1 5 IOWAIT_TIME 4662686 1693790396 0
1983 1693790396 1 6 NICE_TIME 403 1693790396 0
1983 1693790396 1 14 RSRC_MGR_CPU_WAIT_TIME 0 1693790396 0
1983 1693790396 1 15 LOAD 0 1693790396 0
1983 1693790396 1 16 NUM_CPU_CORES 8 1693790396 0
SNAP_ID DBID INSTANCE_NUMBER STAT_ID STAT_NAME VALUE CON_DBID CON_ID
---------- ---------- --------------- ---------- ---------------------------------------------------------------- ---------- ---------- ----------
1983 1693790396 1 17 NUM_CPU_SOCKETS 8 1693790396 0
1983 1693790396 1 1008 PHYSICAL_MEMORY_BYTES 8200208384 1693790396 0
1983 1693790396 1 1009 VM_IN_BYTES 5718016 1693790396 0
1983 1693790396 1 1010 VM_OUT_BYTES 17268736 1693790396 0
1983 1693790396 1 1011 FREE_MEMORY_BYTES 385167360 1693790396 0
1983 1693790396 1 1012 INACTIVE_MEMORY_BYTES 2357760000 1693790396 0
1983 1693790396 1 1013 SWAP_FREE_BYTES 8575242240 1693790396 0
1983 1693790396 1 2000 TCP_SEND_SIZE_MIN 4096 1693790396 0
1983 1693790396 1 2001 TCP_SEND_SIZE_DEFAULT 16384 1693790396 0
1983 1693790396 1 2002 TCP_SEND_SIZE_MAX 4194304 1693790396 0
1983 1693790396 1 2003 TCP_RECEIVE_SIZE_MIN 4096 1693790396 0
...
4950 rows selected
4950 개의 결과값은 어떻게 나왔는가
06:43:48 SUA@ORCL> select count(*) from ( select distinct stat_name from dba_hist_osstat);
COUNT(*)
----------
25
Elapsed: 00:00:00.03
06:44:34 SUA@ORCL> select count(*) from ( select distinct SNAP_ID from dba_hist_osstat);
COUNT(*)
----------
198
각 snap_id 마다 25개의 stat_name을 가지고 있다
07:17:29 SUA@ORCL> select distinct stat_name from dba_hist_osstat order by stat_name;
STAT_NAME
----------------------------------------------------------------
BUSY_TIME
FREE_MEMORY_BYTES
GLOBAL_RECEIVE_SIZE_MAX
GLOBAL_SEND_SIZE_MAX
IDLE_TIME
INACTIVE_MEMORY_BYTES
IOWAIT_TIME
LOAD
NICE_TIME
NUM_CPUS
NUM_CPU_CORES
NUM_CPU_SOCKETS
PHYSICAL_MEMORY_BYTES
RSRC_MGR_CPU_WAIT_TIME
SWAP_FREE_BYTES
SYS_TIME
TCP_RECEIVE_SIZE_DEFAULT
TCP_RECEIVE_SIZE_MAX
TCP_RECEIVE_SIZE_MIN
TCP_SEND_SIZE_DEFAULT
TCP_SEND_SIZE_MAX
TCP_SEND_SIZE_MIN
USER_TIME
VM_IN_BYTES
VM_OUT_BYTES
25 rows selected.
컬럼은 무엇을 의미하는가
- SNAP_ID : Unique snapshot ID
- snapshot의 공유값
- DBID : Database ID for the snapshot
- DB 생성 시 결정
- SELECT dbid FROM v$database; 으로 확인 가능
- INSTANCE_NUMBER : Instance number for the snapshot
- RAC 나 Data Guard , CDB내의 PDB 일 경우 instance 마다 고유값이 있다
- SELECT INSTANCE_NUMBER, INSTANCE_NAME FROM V$INSTANCE;
- [RAC] SELECT INSTANCE_NUMBER, INSTANCE_NAME, HOST_NAME FROM GV$INSTANCE;
- STAT_ID : Statistic ID
- 상태의 고유값
- STAT_NAME : Statistic name
- 상태 이름
- VALUE : Statistic value
- 상태 값
- CON_DBID : The database ID of the PDB for the sampled session
- 멀티테넌트 환경에서 의미 있음 pdb의 고유값
- CON_ID : The ID of the container that CON_DBID identifies. Possible values include:
- 멀티테넌트 환경에서 container의 값
25개의 STAT은 무엇을 의미하는가
cpu
SYS_TIME: 시스템 모드에서 실행된 시간.
USER_TIME: 사용자 모드에서 실행된 시간.
BUSY_TIME: 시스템이 작업 중인 시간.
- USER_TIME + SYS_TIME
IDLE_TIME: 시스템이 유휴 상태로 있었던 시간.
IOWAIT_TIME: 시스템이 I/O 작업을 기다린 시간.
LOAD: 시스템의 현재 작업 부하.
NICE_TIME: nice 우선순위로 실행된 작업에 소비된 시간.
NUM_CPUS: 시스템에 있는 CPU의 총 개수.
NUM_CPU_CORES: 시스템에 있는 CPU 코어의 총 개수.
NUM_CPU_SOCKETS: 시스템에 있는 CPU 소켓의 총 개수.
RSRC_MGR_CPU_WAIT_TIME: 리소스 관리자에 의해 CPU 사용을 기다린 시간.
memory
FREE_MEMORY_BYTES: 시스템에서 사용 가능한 여유 메모리의 바이트 수.
INACTIVE_MEMORY_BYTES: 사용되지 않는 메모리의 바이트 수.
PHYSICAL_MEMORY_BYTES: 시스템의 물리적 메모리의 총 바이트 수.
SWAP_FREE_BYTES: 사용 가능한 스왑 공간의 바이트 수.
VM_IN_BYTES: 가상 메모리로의 입력 바이트 수.
VM_OUT_BYTES: 가상 메모리로부터의 출력 바이트 수.
network
GLOBAL_RECEIVE_SIZE_MAX: 글로벌 수신 버퍼의 최대 크기.
GLOBAL_SEND_SIZE_MAX: 글로벌 전송 버퍼의 최대 크기.
TCP_RECEIVE_SIZE_DEFAULT: TCP 수신 버퍼의 기본 크기.
TCP_RECEIVE_SIZE_MAX: TCP 수신 버퍼의 최대 크기.
TCP_RECEIVE_SIZE_MIN: TCP 수신 버퍼의 최소 크기.
TCP_SEND_SIZE_DEFAULT: TCP 전송 버퍼의 기본 크기.
TCP_SEND_SIZE_MAX: TCP 전송 버퍼의 최대 크기.
TCP_SEND_SIZE_MIN: TCP 전송 버퍼의 최소 크기.
- AWR에서는 1시간에 한번씩 찍히는거라 의미없다 사실 잘안봄
- WIO : wait IO
- OS 정보 감잡는 정도