PGA AGGREGATE TARGET

EXEM Knowledge Base

(Pga aggregate target에서 넘어옴)
Jump to: navigation, 찾기

목차

[편집] 기본 정보

[편집] Parameter 정보


Syntax PGA_AGGREGATE_TARGET
설정방법
  • Parameter File
  • ALTER SYSTEM SET PGA_AGGREGATE_TARGET = 1G
버전 및 기본값
9iR2 10gR1 10gR2 11g
0 Max(10M, 20% of SGA)



[편집] 설명

PGA_AGGREGATE_TARGET(PAT) 파라미터는 하나의 인스턴스에서 구동되는 모든 서버 프로세스(Server Process)가 사용하는 PGA 메모리의 합계 크기에 대한 목표치(Target)를 설정한다. 이 기능을 사용하면 사용자가 Sort Area Size와 같은 Workarea Size를 개별 지정하지 않아도 오라클이 목표치를 기준으로 각 프로세스마다 적합한 크기의 PGA를 할당한다.

이 값이 세팅되면 WORKAREA_SIZE_POLICY 파라미터 값은 AUTO로 세팅된 것으로 간주된다. 또한 SORT_AREA_SIZE, HASH_AREA_SIZE와 같은 Workarea Size를 결정하는 파라미터 값들은 무시된다.


[편집] 참고 사항

[편집] PGA/Workarea 크기

PGA_AGGREGATE_TARGET 값과 실제 서버 프로세스가 사용 가능한 메모리간의 상관 관계를 이해해야 한다. 가령 이 값이 1G로 설정되었다는 것은 무엇을 의미하는가? 아래의 예를 보자.

ALTER SYSTEM SET PGA_AGGREGATE_TARGET=1G;
 
-- 파라미터 값 조회 
pga_aggregate_target = 1073741824 = 1G
_smm_max_size = 104850 = 100M
_smm_px_max_size = 524288 = 500M
_pga_max_size = 214732800 = 200M

  • _SMM_MAX_SIZE 파라미터 값은 하나의 서버 프로세스가 사용 가능한 최대 Wokrarea 크기를 의미한다. 위의 예를 보면, PAT 값을 1G로 지정하더라도 실제 하나의 서버 프로세스가 사용 가능한 최대 Workarea는 100M로 제한된다.
  • _SMM_PX_MAX_SIZE 파라미터 값은 하나의 병렬 실행에 속한 병렬 슬레이브들이 사용 가능한 최대 Workarea 크기를 의미한다. 위의 예를 보면, 모든 병렬 슬레이들이 사용 가능한 Workarea 영역의 최대 크기는 500M로 제한된다.
  • _PGA_MAX_SIZE 파라미터 값은 하나의 서버 프로세스가 사용 가능한 최대 PGA 크기를 의미한다. PGA는 Wokarea외에 Session 정보, Cursor 정보 등의 정보를 포함한다.


[편집] Hash/Sort 작업과의 관계

PGA_AGGREGATE_TARGET 파라미터에 의해 지정된 Workarea의 크기는 Hash 작업과 Sort 작업의 성능을 결정하는 중요한 값이다. 사용가능한 Workarea의 크기에 따라 Hash/Sort 작업이 Optimal, Onepass 또는 Multipass로 실행되며, 어떤 방법으로 실행되느냐에 따라 Hash/Sort 작업의 성능이 크게 달라진다. Hash/Sort 작업은 가능한 Optimal이나 Onepass 방법으로 실행되어야 하며, PGA_AGGREGATE_TARGET 값을 이용해 Workarea의 크기를 늘려줌으로써 가능하다.

V$SQL_WORKAREA, V$SQL_WORKAREA_ACTIVE 뷰를 이용하면 각 SQL 커서별로 Workarea를 얼마나 사용하는지, 어떤 실행 방법(Optimal, Onepass, Multipass)을 사용했는지의 정보를 손쉽게 확인할 수 있다. V$SQL_WORKAREA_HISTOGRAM 뷰를 이용하면 Workarea의 크기 그룹별로 실행 방법 분포를 알 수 있다.

SELECT low_optimal_size AS low, high_optimal_size as high,
  optimal_executions as optimal,
  onepass_executions as onepass,
  multipasses_executions as multipass
FROM V$SQL_WORKAREA_HISTOGRAM
LOW	HIGH	OPTIMAL	ONEPASS	MULTIPASS
0	  1023	    0	         0	        0
1024	2047	  0	      0	             0
2048	4095	 701796	  0	         0
4096	8191	  4	      0	             0
8192	16383	 6	     0	            0
16384	32767	0	    0	           0
32768	65535	0	    0	           0
...


[편집] 매우 큰 Sort Area가 필요할 경우

매우 큰 크기의 데이터를 Sort하고자 할 경우에는 큰 크기의 Worarea를 필요로 한다. 하지만 PGA_AGGREGATE_TARGET을 사용하는 경우 각 서버 프로세스가 사용가능한 최대 Workarea의 크기가 오라클에 의해 일정한 크기로 제한된다. 오라클에 의해 지정된 크기 이상의 Sort Area가 필요한 경우에는 해당 세션에 대해서 WORKAREA_SIZE_POLICY 값을 Manual로 전환하는 방법을 사용할 수 있다. 아래에 간단한 예제가 있다.

ALTER SESSION SET WORKAREA_SIZE_POLICY = MANUAL;
ALTER SESSION SET SORT_AREA_SIZE = 2000000;


[편집] 관련된 정보

  1. _SMM_MAX_SIZE 파라미터
  2. _SMM_PX_MAX_SIZE 파라미터
  3. _PGA_MAX_SIZE 파라미터
  4. HASH_AREA_SIZE 파라미터
  5. SORT_AREA_SIZE 파라미터
  6. SORT_AREA_RETAINED_SIZE 파라미터
  7. WORK_AREA_SIZE_POLICY 파라미터
  8. MEMORY_TARGET 파라미터
  9. direct path write temp 대기이벤트
  10. direct path read temp 대기이벤트
  11. V$SQL_WORKAREA
  12. V$SQL_WORKAREA_ACTIVE
  13. V$SQL_WORKAREA_HISTOGRAM
  14. 10032 Event
  15. 10033 Event
  16. 10046 Event
  17. 10104 Event


[편집] 외부 참조

[편집] Analysis Case

[편집] 1. PGA_AGGREGATE_TARGET 정합성 분석

[편집] 2. OS Free Memory 사용량과 PGA_AGGREGATE_TARGET

[편집] Free Memory 추이

분석하고자 하는 인스턴스는 새벽시간은 OS Free Memory가 1G정도로 충분하게 유지되나, 업무시간에는 Free Memory가 거의 없다. (13시 11분에는 Free Memory가 55MB 있음)

그림:5_4_1.jpg

[편집] Total Session 추이

새벽시간에는 Total Session이 100개 정도를 유지하나, 업무시간에는 Max 550개 까지 증가한다.

그림:5_4_2.jpg

[편집] Free Memory와 Total Session 추이 비교

Sessions이 증가하면서 Session이 할당받은 PGA Memory를 Session이 Release 되기 전까지 보유하게 되므로, 지속적으로 Session이 증가할 경우 Free Memory는 지속적으로 감소하게 된다.

그림:5_4_3.jpg

[편집] PGA 메모리 사용현황 점검

[편집] Parameter
_pga_max_size           = 209715200 Bytes -> 200MB
_smm_max_size         = 40089 KB -> 약 40MB
pga_aggregate_target = 821035008 Bytes -> 783MB
[편집] V$PGA_TARGET_ADVICE

그림:5_4_4.jpg

[편집] 결 론

한 Session에 할당되는 PGA Memory의 Max Size는 위의 설정으로 확인해 보았을 때 40M까지 할당 받을 수 있다.

기본적으로 할당되는 PGA Memory는 Session이 Inactive Session으로 Status가 변경되더라도 OS에 반납하지 않고, 해당 세션이 보유하게 되므로, 지속적으로 PGA Memory Size가 증가하게 된다.

그만큼 OS Free Memory는 감소하게 되지만,그 증가값은 PGA_AGGREGATE_TARGET에 할당된 크기까지만 증가하게 되고, 더 이상 증가하지 않는다.

20시간 동안의 logons session의 패턴을 보면 업무시간에 증가했던 세션들은 새벽시간에 다시 release하게 되어 Free Memory가 1G정도를 유지하게 되고 업무시간에 total sessions이 증가하면서 Free Memory가 감소를 하는 일련의 패턴을 유지하고 있다. 업무시간의 세션 증가로 인한 정상적인 메모리의 사용이 비 업무 시간과 비교되어 문제가 되는 것으로 판단될 수 있는 여지가 있었다.

즉, 이 경우는 비정상적인 사유로 인한 Free Memory 감소는 아닌 것으로 판단된다