원래 TriCore 발행:2017년 4월 11일
두 부분으로 구성된 이 블로그 게시물 시리즈에서는 Oracle® Database 버전 12.1.0.1 및 12.1.0.2의 새로운 성능 조정 기능을 다룹니다. 1부에서는 이전 버전에 대해 설명합니다.
오라클 데이터베이스 12.1.01의 새로운 기능
다음 기능은 Oracle Database 버전 12.1.0.1의 새로운 기능입니다.
- 실시간 자동 데이터베이스 진단 모니터(ADDM)
- PGA(프로그램 전역 영역) 크기 제한 지원
- 활성 세션 기록(ASH) 개선 사항
실시간 ADDM
Real-Time ADDM을 사용하면 데이터베이스를 다시 시작하지 않고도 정지된 데이터베이스의 문제를 분석하고 해결할 수 있습니다. 이 섹션에서는 Real-Time ADDMin에 대해 자세히 설명합니다.
실시간 ADDM 연결 모드
Real-Time ADDM은 두 가지 연결 모드 중 하나를 사용하여 OEM(Oracle Enterprise Manager)을 통해 데이터베이스에 연결합니다. 사용하는 모드는 데이터베이스 상태에 따라 다릅니다.
-
일반 연결 :이 모드에서 Real-Time ADDM은 JDBC(Java DatabaseConnectivity)를 사용하여 데이터베이스에 연결합니다. 이 모드는 연결이 가능할 때 데이터베이스의 광범위한 성능 분석을 수행합니다.
-
진단 연결 :이 모드에서 Real-Time ADDM은 데이터베이스에 aatch-less 연결을 수행합니다. 이 모드는 정상적인 JDBC 연결이 불가능할 때 극단적인 정지 상황에 유용합니다.
실시간 ADDM 트리거
Real-Time ADDM은 3초마다 자동으로 실행되며 메모리 내 데이터를 사용하여 데이터베이스 성능 문제를 진단합니다. 성능 문제를 감지하면 자동으로 분석을 트리거합니다. 이 기능에는 다음 단계가 포함됩니다.
-
MMON(Manageability Monitor) 프로세스는 3초마다 잠금 또는 래치 없이 성능 통계를 얻기 위한 작업을 수행합니다.
-
MMON 프로세스는 이러한 통계를 확인하고 표 1에 나타난 문제를 찾으면 실시간 ADDManalysis를 트리거합니다.
-
MMON 슬레이브 프로세스는 보고서를 생성하여 AWR(AutomaticWorkload Repository)에 저장합니다. 자세한 내용은
DBA_HIST_REPORTS
에서 확인할 수 있습니다. 보기 및DBA_HIST_REPORTS_DETAILS
보기.
다음 명령을 사용하여 보고서를 수동으로 생성할 수도 있습니다.
SQL> select dbms_addm.real_time_addm_report() from dual;
표 1:실시간 ADDManalysis를 트리거하는 성능 문제 및 조건
문제 | 상태 |
---|---|
높은 로드 | 평균 활성 세션은 CPU 코어 수의 3배 이상입니다. |
I/O 바운드 | 활성 세션에 대한 I/O 영향은 단일 블록 읽기 성능을 기반으로 합니다. |
CPU 바운드 | 활성 세션이 총 로드의 10%를 초과하고 CPU 사용률이 50%를 초과합니다. |
과도하게 할당된 메모리 | 메모리 할당이 실제 메모리의 95% 이상입니다. |
상호 연결 경계 | 단일 블록 상호 연결 전송 시간 기준 |
세션 제한 | 세션 제한이 100%에 가깝습니다. |
프로세스 제한 | 프로세스 제한이 100%에 가깝습니다. |
중단된 세션 | 중단된 세션이 총 세션의 10%보다 큽니다. |
교착 상태 감지 | 교착 상태가 감지되었습니다. |
출처 :데이터베이스 성능 조정 가이드, 7장:자동 성능 진단:실시간 ADDM 연결 모드
실시간 ADDM 트리거 제어
자동 트리거가 너무 많은 시스템 리소스를 소비하지 않도록 Real-Time ADDM은 다음 컨트롤을 사용합니다.
-
보고서 사이의 기간 :자동 트리거가 지난 5분 동안 Real-TimeADDM 보고서를 생성한 경우 새 보고서가 생성되지 않습니다.
-
Oracle RAC(Real Application Clusters) 제어 :자동 트리거는 데이터베이스 인스턴스에 로컬입니다. Oracle RAC의 경우 한 번에 하나의 데이터베이스 인스턴스만 실시간 ADDM 보고서를 생성할 수 있습니다.
-
반복된 트리거 :모든 문제에 대한 자동 트리거는 이전 45분 이내에 동일한 트리거 문제가 있었던 이전 보고서보다 100% 이상 영향을 주어야 합니다.
-
새로 확인된 문제 :지난 45분 이내에 아직 감지되지 않은 새로운 문제가 감지되면 새 보고서가 생성됩니다.
PGA 크기 제한
과도한 PGA 사용은 스와핑 비율을 높일 수 있습니다. 이 경우 시스템이 응답하지 않고 불안정해질 수 있습니다. 이 경우 PGA_AGGREGATE_LIMIT
사용을 고려하십시오. 전체 PGA 사용을 제한하는 초기화 매개변수입니다.
다음 섹션에서는 PGA_AGGREGATE_LIMIT
를 사용하여 PGA의 크기를 제한하는 방법을 설명합니다. Oracle Database 12c R1(12.1.0.1) 이상의 초기화 매개변수
PGA_AGGREGATE_LIMIT 매개변수 정보
PGA_AGGREGATE_LIMIT
에 값이 정의된 경우 매개변수가 초과되면 Oracle 데이터베이스는 조정 불가능한 PGA 메모리를 가장 많이 사용하는 세션 또는 프로세스를 중단하거나 종료합니다. Oracle Database는 다음 순서로 종료를 수행합니다.
- 가장 조정 불가능한 PGA 메모리를 사용하는 세션을 호출하고 중단합니다.
- PGA 메모리 사용량이 여전히
PGA_AGGREGATE_LIMIT
를 초과하는 경우 , OracleDatabase는 조정 불가능한 PGA 메모리를 가장 많이 사용하는 세션과 프로세스를 종료합니다.
Oracle Database는 병렬 쿼리를 단일 단위로 취급합니다. 기본적으로 PGA_AGGREGATE_LIMIT
매개변수는 PGA_AGGREGATE_TARGET
의 200%인 2GB 중 큰 값으로 설정됩니다. 값 또는 PROCESSES
값에 3MB를 곱한 값 매개변수. 그러나 실제 메모리 크기에서 총 SGA(시스템 전역 영역) 크기를 뺀 값의 120%를 초과하지 않습니다.
PGA_AGGREGATE_LIMIT 매개변수 설정
PGA_AGGREGATE_LIMIT
초기화 매개변수는 동적으로 설정할 수 있습니다. 데이터베이스를 다시 시작할 필요가 없습니다. PGA_AGGREGATE_LIMIT
값을 설정할 수 있습니다. Oracle Database가 자동 메모리 관리를 사용하는지 여부에 관계없이.
PGA_AGGREGATE_LIMIT 매개변수 변경
PGA_AGGREGATE_LIMIT
설정 초기화 매개변수를 바이트 수의 새 값으로 변경합니다. 값을 0
으로 설정 PGAmemory에 대한 하드 제한을 비활성화합니다.
PGA_AGGREGATE_LIMIT
초과되면 Oracle Database는 다음 작업을 수행합니다.
- 가장 조정 불가능한 메모리를 사용하는 세션과 관련된 호출을 중단합니다.
- 총 PGA 메모리 사용량이 여전히 한도를 초과하면 가장 조정할 수 없는 메모리를 사용하는 세션을 종료합니다.
sys.processes
작업 대기열 프로세스 이외의 백그라운드 프로세스는 영향을 받지 않습니다. 대신 가장 조정 불가능한 메모리를 사용하는 경우 주기적으로 PGA 사용량에 대한 간략한 요약을 추적 파일에 기록합니다.
ASH 개선 사항
Oracle 12c부터 ASH Analytics라는 새 OEM 페이지를 통해 ASH 데이터 시각화에 액세스할 수 있습니다. . 이 페이지에서는 논리적 차원으로 드릴다운할 수 있습니다. 보고서를 오프라인에서 볼 수 있는 다른 사용자에게 보낼 수도 있습니다.
이미지 출처 :OCP 12C – 비상 모니터링, 실시간ADDM
결론
이러한 새로운 기능은 Oracle Database 12c 릴리스 1의 문제를 해결하고 데이터베이스 성능을 향상하는 데 종합적으로 도움이 됩니다. 이 시리즈의 2부에서는 Oracle Database12.1.0.2의 성능 조정에 대한 더 많은 새로운 기능과 변경 사항을 다룹니다.
피드백 탭을 사용하여 의견을 남기거나 질문하십시오.
참조
다음 출처는 이 블로그 게시물의 참조로 사용되었습니다.
-
데이터베이스 성능 조정 가이드, 7장:자동 성능 진단:실시간 ADDM 연결 모드
-
데이터베이스 성능 조정 가이드, 7장:자동 성능 진단:ADDM AnalysisResults