Oracle/Oracle 12C

PGA_AGGREGATE_LIMIT

darkturtle26 2018. 4. 17. 14:16

참고 

1. Limiting process size with database parameter PGA_AGGREGATE_LIMIT (문서 ID 1520324.1)

2. http://www.kova.co.kr/techinfo/sub01_read.asp?fre_code=2&fre_num=4&fre_seq=4


A. PGA_AGGREGATE_LIMIT 등장 배경

  1) The PGA_AGGREGATE_TARGET 는 목표값이지, 제한값이 아님

  2) PGA_AGGREGATE_TARGET 는 Tunable Memory(Work Area) 만 제한함 

  3) 과도한 PGA 사용은 SWAP을 유발시켜 성능 문제 야기시킴.


B. PGA_AGGREGATE_LIMIT 은 Dynamic 변경가능


C. 3초 마다, CHPT 프로세스가 PGA_AGGREGATE_LIMIT 초과 여부 확인 

   -> PGA 가장 많이 사용 프로세스 종료 시킴 ( LIMIT 이하 까지 종료, PGA 사용 반복)


D. 12C, PGA_AGGREGATE_LIMIT 로 PGA USAGE 제한가능함


E. PGA_AGGREGATE_LIMIT 초과시, DB는 아래 규칙으로 Session/Process 를 종료 시킴

  1. 가장많은 Untunable PGA 사용 하는 세션을 중단시킴

  2. 그래도 PGA_AGGREGATE_LIMIT 를 초과하면, 다시 가장많은 Untuable PGA 사용 하는 세션을 중단시킴

  3. Job 외, SYS 및 Background Process 는 대상아님


F. 12cR1

  1) PGA_AGGREGATE_LIMIT 은 기본이 2기가, PGA_AGGREGATE_TARGE * 2 , PROCESS * 3 M

  2) ( Physical Memory - SGA )*1.2 > PGA_AGGREGATE_LIMIT


G. 12R2 ( PGA_AGGREGATE_LIMI 은 최소값은 2기가 그리고  PROCESS * 3M 이다. )

  1) MEMORY_TARGET SET   , THEN, PGA_AGGREGATE_LIMIT = MEMORY_TARGET

  2) MEMORY_TARGET UNSET , THEN, PGA_AGGREGATE_LIMIT = PGA_AGGREGATE_TARGET * 2

  3) MEMORY_TARGET UNSET , PGA_AGGREGATE_TARGET = 0 

     THEN,  PGA_AGGREGATET_LIMIT = ( Physical Memory - SGA ) * 0.9