Enhanced I/O Statistics

EXEM Knowledge Base

Jump to: navigation, 찾기

Oracle 11g에 OS정보를 가져오는 기능이 많이 추가 되었다.

물론 Oracle 10g에서도 CPU정도는 가져올 수 있었지만 11g에서는 그것보다 더 많은 IO와 Network정보가 추가 된 것을 알 수 있다.

[편집] OS 정보

  • V$OSSTAT

10g에도 있었던 뷰였지만 Network정보가 추가 되었다.

SQL>select * from v$osstat
STAT_NAMEVALUEOSSTAT_IDCOMMENTSCUMULATIVE
NUM_CPUS 1 0 Number of active CPUs NO
IDLE_TIME 193231 1 Time (centi-secs) that CPUs have been in the idle state YES
BUSY_TIME 11537 2 Time (centi-secs) that CPUs have been in the busy state YES
USER_TIME 8154 3 Time (centi-secs) spent in user code YES
SYS_TIME 3179 4 Time (centi-secs) spent in the kernel YES
IOWAIT_TIME 4630 5 Time (centi-secs) spent waiting for IO YES
NICE_TIME 0 6 Time (centi-secs) spend in low-priority user code YES
RSRC_MGR_CPU_WAIT_TIME 0 14 Time (centi-secs) processes spent in the runnable state waiting YES
LOAD 0 15 Number of processes running or waiting on the run queue NO
PHYSICAL_MEMORY_BYTES 1051881472 1008 Physical memory size in bytes NO
TCP_SEND_SIZE_MIN 4096 2000 TCP Send Buffer Min Size NO
TCP_SEND_SIZE_DEFAULT 16384 2001 TCP Send Buffer Default Size NO
TCP_SEND_SIZE_MAX 131072 2002 TCP Send Buffer Max Size NO
TCP_RECEIVE_SIZE_MIN 4096 2003 TCP Receive Buffer Min Size NO
TCP_RECEIVE_SIZE_DEFAULT 87380 2004 TCP Receive Buffer Default Size NO
TCP_RECEIVE_SIZE_MAX 174760 2005 TCP Receive Buffer Max Size NO
GLOBAL_SEND_SIZE_MAX 262144 2006 Global send size max (net.core.wmem_max) NO
GLOBAL_RECEIVE_SIZE_MAX 262144 2007 Global receive size max (net.core.rmem_max) NO

[편집] 디스크 I/O

오라클을 사용하는 데 있어 가장 필요한 디스크 정보는 아마도 응답 시간과 디스크 큐의 길이일 것이다.

11g에서는 이러한 정보를 consumer group, database file, database function 별로 single, multiblick read/write에 대해서 그리고 io call수와 응답시간 그리고 대기 큐의 갯수를 보여준다.


  • V$IOSTAT_CONSUMER_GROUP

이 테이블은 resource manager가 활성화되어 있을 때 그리고 resource consumer group이 설정되어 있을때 resource consumer group별로 io에 대한 정보를 보여준다.

SQL> desc V$IOSTAT_CONSUMER_GROUP
 
COLUMN_NAME              DATA_TYPE DATA_LEN    DENSITY NULLABLE 
------------------------ --------- -------- ---------- -------- 
CONSUMER_GROUP_ID        NUMBER          22            Y 
SMALL_READ_MEGABYTES     NUMBER          22            Y 
SMALL_WRITE_MEGABYTES    NUMBER          22            Y 
LARGE_READ_MEGABYTES     NUMBER          22            Y 
LARGE_WRITE_MEGABYTES    NUMBER          22            Y  
SMALL_READ_REQS          NUMBER          22            Y  
SMALL_WRITE_REQS         NUMBER          22            Y  
LARGE_READ_REQS          NUMBER          22            Y  
LARGE_WRITE_REQS         NUMBER          22            Y 
NUMBER_OF_WAITS          NUMBER          22            Y 
WAIT_TIME                NUMBER          22            Y 


  • V$IOSTAT_FILE

이것은 database file별로 IO정보를 보여주는 뷰이다.

SQL> desc V$IOSTAT_FILE 
 
COLUMN_NAME              DATA_TYPE DATA_LEN  NULLABLE 
------------------------ --------- --------  -------- 
FILE_NO                  NUMBER          22  Y 
FILETYPE_ID              NUMBER          22  Y 
FILETYPE_NAME            VARCHAR2        28  Y 
SMALL_READ_MEGABYTES     NUMBER          22  Y 
SMALL_WRITE_MEGABYTES    NUMBER          22  Y 
LARGE_READ_MEGABYTES     NUMBER          22  Y 
LARGE_WRITE_MEGABYTES    NUMBER          22  Y 
SMALL_READ_REQS          NUMBER          22  Y 
SMALL_WRITE_REQS         NUMBER          22  Y  
SMALL_SYNC_READ_REQS     NUMBER          22  Y 
LARGE_READ_REQS          NUMBER          22  Y 
LARGE_WRITE_REQS         NUMBER          22  Y 
SMALL_READ_SERVICETIME   NUMBER          22  Y 
SMALL_WRITE_SERVICETIME  NUMBER          22  Y 
SMALL_SYNC_READ_LATENCY  NUMBER          22  Y 
LARGE_READ_SERVICETIME   NUMBER          22  Y 
LARGE_WRITE_SERVICETIME  NUMBER          22  Y 
ASYNCH_IO                VARCHAR2         9  Y 
RETRIES_ON_ERROR         NUMBER          22  Y 

file type은 Control File, Flashback Log, Data Pump Dump File, Temp File, Other, Log File, Data File Incremental Backup,Archive Log Backup, Data File Copy, Archive Log, Data File Backup, Data File로 나뉘어 나타내어 준다.


  • V$IOSTAT_FUNCTION

Database function별로 IO정보를 나타내어 준다. Database Function은 RMAN, XDB, Data Pump, Direct Reads, Direct Writes, Buffer Cache Reads, LGWR, ARCH, DBWR, Streams AQ, Others, Recovery로 구분되어져 있다.

SQL> desc V$IOSTAT_FUNCTION
 
COLUMN_NAME              DATA_TYPE DATA_LEN  NULLABLE 
------------------------ --------- --------  -------- 
FUNCTION_ID              NUMBER          22  Y 
FUNCTION_NAME            VARCHAR2        18  Y 
SMALL_READ_MEGABYTES     NUMBER          22  Y 
SMALL_WRITE_MEGABYTES    NUMBER          22  Y 
LARGE_READ_MEGABYTES     NUMBER          22  Y 
LARGE_WRITE_MEGABYTES    NUMBER          22  Y 
SMALL_READ_REQS          NUMBER          22  Y 
SMALL_WRITE_REQS         NUMBER          22  Y 
LARGE_READ_REQS          NUMBER          22  Y 
LARGE_WRITE_REQS         NUMBER          22  Y 
NUMBER_OF_WAITS          NUMBER          22  Y 
WAIT_TIME                NUMBER          22  Y 


[편집] NETWORK 정보

network도 IO와 같은 방법으로 application별로 network의 응답 시간등의 정보를 보여주고 있다.

  • V$IOSTAT_NETWORK
SQL> desc V$IOTAT_NETWORK
COLUMN_NAME             DATA_TYPE DATA_LEN  NULLABLE 
----------------------- --------- --------  -------- 
CLIENT                  VARCHAR2        32  Y 
READS#                  NUMBER          22  Y 
WRITES#                 NUMBER          22  Y 
KBYTES_READ             NUMBER          22  Y 
KBYTES_WRITTEN          NUMBER          22  Y 
READ_LATENCY            NUMBER          22  Y 
WRITE_LATENCY           NUMBER          22  Y 

현재 테스트 시스템의 Client는 RMAN과 PL/SQL 두가지만 있다.

이상이 oracle 11g에서 새로 추가된 OS자원에 대한 모니터링 정보이다.

버전이 올라갈 수록 Oracle은 모니터링을 할 수 있는 정보를 점점 늘려가고 있으며 그것도 DB 안으로 집중하는 모습을 보여주고 있는 것 같다. 현재까지 CPU, Memory, IO, NETWORK에 대한 정보는 제법 추가가 되어 왔다.

그러나 Memory의 부분에 있어서는 physical memory의 크기만을 보여주고 있는데 향후 swap이나 page같은 정보도 아울러 보여주게 되지 않을까 하는 생각이 든다.