기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWR 보고서를 사용하여 Oracle 데이터베이스의 Amazon RDS 엔진 크기 추정
작성자: Abhishek Verma(AWS) 및 Eduardo Valentim(AWS)
환경: 프로덕션 | 소스: Oracle 네이터베이스 | 대상: Amazon RDS 또는 Amazon Aurora |
R 유형: 리아키텍트 | 워크로드: Oracle | 기술: 데이터베이스, 마이그레이션 |
AWS 서비스: Amazon RDS, Amazon Aurora |
요약
Oracle 데이터베이스를 Amazon Relational Database Service(AmazonRDS) 또는 Amazon Aurora로 마이그레이션할 때 대상 데이터베이스에 대한 CPU, 메모리 및 디스크 I/O를 계산하는 것이 핵심 요구 사항입니다. Oracle 자동 워크로드 리포지토리(AWR) 보고서를 분석하여 대상 데이터베이스의 필수 용량을 추정할 수 있습니다. 이 패턴은 AWR 보고서를 사용하여 이러한 값을 추정하는 방법을 설명합니다.
소스 Oracle 데이터베이스는 온프레미스에 있거나 Amazon Elastic Compute Cloud(AmazonEC2) 인스턴스에서 호스팅되거나 Amazon RDS for Oracle DB 인스턴스일 수 있습니다. 대상 데이터베이스는 Amazon RDS 또는 Aurora 데이터베이스일 수 있습니다.
참고: 대상 데이터베이스 엔진이 Oracle인 경우 용량 추정치가 더 정확합니다. 다른 Amazon RDS 데이터베이스의 경우 데이터베이스 아키텍처의 차이로 인해 엔진 크기가 달라질 수 있습니다.
Oracle 데이터베이스를 마이그레이션하기 전에 성능 테스트를 실행하는 것이 좋습니다.
사전 조건 및 제한 사항
사전 조건
AWR 보고서를 다운로드하기 위한 Oracle Database Enterprise Edition 라이선스 및 Oracle Diagnostics Pack 라이선스.
제품 버전
버전 11g(버전 11.2.0.3.v1 이상) 및 최대 12.2 및 18c,19c의 모든 Oracle Database 에디션.
이 패턴은 Oracle Engineered Systems 또는 Oracle Cloud Infrastructure()에는 적용되지 않습니다OCI.
아키텍처
소스 기술 스택
다음 중 하나입니다.
온프레미스 Oracle 데이터베이스
EC2 인스턴스의 Oracle 데이터베이스
Amazon RDS for Oracle DB 인스턴스
대상 기술 스택
모든 Amazon RDS 또는 Amazon Aurora 데이터베이스
대상 아키텍처
전체 마이그레이션 프로세스에 대한 자세한 내용은 AWS DMS 및 를 사용하여 Oracle 데이터베이스를 Aurora PostgreSQL로 마이그레이션 패턴을 참조하세요AWSSCT.
자동화 및 규모 조정
마이그레이션할 Oracle 데이터베이스가 여러 개 있고 추가 성능 지표를 사용하려는 경우 Oracle 성능 지표를 기반으로 블로그 게시물 적절한 크기의 Amazon RDS 인스턴스에 대규모로 설명된 단계에 따라 프로세스를 자동화할 수 있습니다
도구
Oracle 자동 워크로드 리포지토리(AWR)
는 Oracle 데이터베이스에 내장된 리포지토리입니다. 시스템 활동 및 워크로드 데이터를 주기적으로 수집하고 저장한 다음 자동 데이터베이스 진단 모니터()에서 분석합니다ADDM. AWR 는 시스템 성능 데이터의 스냅샷을 주기적으로(기본적으로 60분마다) 수집하고 정보를 저장합니다(기본적으로 최대 8일). AWR 뷰와 보고서를 사용하여 이 데이터를 분석할 수 있습니다.
모범 사례
대상 데이터베이스에 대한 리소스 요구 사항을 계산하려면 단일 AWR 보고서, 여러 AWR 보고서 또는 동적 AWR 보기를 사용할 수 있습니다. 피크 로드 기간 동안 여러 AWR 보고서를 사용하여 이러한 피크 로드를 처리하는 데 필요한 리소스를 추정하는 것이 좋습니다. 또한 동적 뷰는 리소스 요구 사항을 보다 정확하게 계산하는 데 도움이 되는 더 많은 데이터 포인트를 제공합니다.
마이그레이션하려는 데이터베이스에 IOPS대해서만 추정해야 하며 디스크를 사용하는 다른 데이터베이스 및 프로세스에 대해서는 추정하지 않아야 합니다.
데이터베이스에서 사용되는 I/O 양을 계산하려면 AWR 보고서의 프로필 로드 섹션에 있는 정보를 사용하지 마세요. I/O 프로필 섹션이 있는 경우 대신 I/O 프로필 섹션을 사용하거나 인스턴스 활동 통계 섹션으로 건너뛰고 물리적 읽기 및 쓰기 작업의 총 값을 확인합니다.
CPU 사용률을 추정할 때는 운영 체제(OS) 통계 대신 데이터베이스 지표 방법을 사용하는 것이 좋습니다. 데이터베이스에서만 CPU 사용하는 를 기반으로 하기 때문입니다. (OS 통계에는 다른 프로세스의 CPU 사용량도 포함됩니다.) 또한 ADDM보고서의 CPU관련 권장 사항을 확인하여 마이그레이션 후 성능을 개선해야 합니다.
올바른 인스턴스 유형을 결정할 때 특정 인스턴스 크기에 대해 I/O 처리량 제한 - Amazon Elastic Block Store(AmazonEBS) 처리량 및 네트워크 처리량을 고려합니다.
마이그레이션 전에 성능 테스트를 실행하여 엔진 크기를 검증합니다.
에픽
작업 | 설명 | 필요한 기술 |
---|---|---|
AWR 보고서를 활성화합니다. | 보고서를 활성화하려면 Oracle 설명서 | DBA |
보존 기간을 확인합니다. | AWR 보고서의 보존 기간을 확인하려면 다음 쿼리를 사용합니다.
| DBA |
스냅샷을 생성합니다. | AWR스냅샷 간격이 피크 워크로드의 스파이크를 캡처할 만큼 세분화되지 않은 경우 AWR 보고서를 수동으로 생성할 수 있습니다. 수동 AWR 스냅샷을 생성하려면 다음 쿼리를 사용합니다.
| DBA |
최근 스냅샷을 확인합니다. | 최근 AWR 스냅샷을 확인하려면 다음 쿼리를 사용합니다.
| DBA |
작업 | 설명 | 필요한 기술 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
방법을 선택합니다. | IOPS 는 스토리지 디바이스에서 초당 입력 및 출력 작업의 표준 측정값이며 읽기 및 쓰기 작업을 모두 포함합니다. 온프레미스 데이터베이스를 로 마이그레이션하는 경우 데이터베이스에서 사용하는 피크 디스크 I/O를 결정AWS해야 합니다. 다음 방법을 사용하여 대상 데이터베이스의 디스크 I/O를 추정할 수 있습니다.
다음 단계에서는 이러한 네 가지 방법을 설명합니다. | DBA | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
옵션 1: 로드 프로파일을 사용합니다. | 다음 표에는 AWR 보고서의 프로필 로드 섹션의 예가 나와 있습니다. 중요: 보다 정확한 정보를 얻으려면 로드 프로파일 대신 옵션 2(I/O 프로파일) 또는 옵션 3(인스턴스 활동 통계)을 사용하는 것이 좋습니다.
이 정보를 기반으로 다음과 같이 IOPs 및 처리량을 계산할 수 있습니다. IOPS = 읽기 I/O 요청: + 쓰기 I/O 요청 = 3,586.8 + 574.7 = 4134.5 처리량 = 물리적 읽기(블록) + 물리적 쓰기(블록) = 13,575.1 + 3,467.3 = 17,042.4 Oracle의 블록 크기는 8KB이므로 다음과 같이 총 처리량을 계산할 수 있습니다. MB 단위의 총 처리량은 17042.4 * 8 * 1024 / 1024 / 1024 = 133.2MB입니다. 경고: 인스턴스 크기를 추정하는 데 로드 프로파일을 사용하지 마세요. 인스턴스 활동 통계 또는 I/O 프로파일만큼 정확하지 않습니다. | DBA | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
옵션 2: 인스턴스 활동 통계를 사용합니다. | 12c 이전에 Oracle Database 버전을 사용하는 경우 AWR 보고서의 인스턴스 활동 통계 섹션을 사용하여 예측 IOPS 및 처리량을 계산할 수 있습니다. 다음 표에서는 이 섹션의 예제를 보여줍니다.
이 정보를 기반으로 다음과 같이 총 IOPS 및 처리량을 계산할 수 있습니다. 합계 IOPS = 3,610.28 + 757.11 = 4367 총 Mbps = 114,482,426.26 + 36,165,631.84 = 150648058.1 / 1024 / 1024 = 143Mbps | DBA | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
옵션 3: I/O 프로필을 사용합니다. | Oracle Database 12c의 AWR 보고서에는 모든 정보를 단일 테이블에 표시하고 데이터베이스 성능에 대한 보다 정확한 데이터를 제공하는 I/O 프로파일 섹션이 포함되어 있습니다. 다음 표에서는 이 섹션의 예제를 보여줍니다.
이 표는 처리량 및 합계에 대해 다음 값을 제공합니다IOPS. 처리량 = 143MBPS(5번째 행에서 합계, 두 번째 열로 표시) IOPS = 4,367.4(첫 번째 행에서 총 요청, 두 번째 열로 레이블 지정) | DBA | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
옵션 4: AWR 뷰를 사용합니다. | AWR 뷰를 사용하여 동일한 IOPS 및 처리량 정보를 볼 수 있습니다. 이 정보를 확인하려면 다음 쿼리를 사용합니다.
| DBA |
작업 | 설명 | 필요한 기술 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
방법을 선택합니다. | 다음 세 가지 방법으로 대상 데이터베이스에 CPU 필요한 를 추정할 수 있습니다.
사용된 코어를 살펴보는 경우 OS 통계 대신 데이터베이스 지표 방법을 사용하는 것이 좋습니다. 마이그레이션하려는 데이터베이스에서만 CPU 사용하는 를 기반으로 하기 때문입니다. (OS 통계에는 다른 프로세스의 CPU 사용량도 포함됩니다.) 또한 ADDM보고서의 CPU관련 권장 사항을 확인하여 마이그레이션 후 성능을 개선해야 합니다. CPU 생성에 따라 요구 사항을 추정할 수도 있습니다. 다른 CPU세대를 사용하는 경우 백서최적 워크로드 성능을 위한 의 수 설명 의 지침에 따라 CPU 대상 데이터베이스에 필요한 를 추정할 수 있습니다. vCPUs | DBA | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
옵션 1: 사용 가능한 코어를 기준으로 요구 사항을 추정합니다. | AWR 보고서에서:
다음 두 가지 방법으로 사용 가능한 코어를 추정할 수 있습니다.
OS 명령을 사용하여 사용 가능한 코어를 추정하려면 다음 명령을 사용하여 프로세서의 코어 수를 계산합니다.
다음 명령을 사용하여 프로세서의 소켓 수를 계산합니다.
참고 : 사용CPU률을 추출하기 위해 nmon 및 sar와 같은 OS 명령을 사용하는 것은 권장하지 않습니다. 이는 이러한 계산에 다른 프로세스의 CPU 사용률이 포함되고 데이터베이스에서 사용되는 실제 CPU 를 반영하지 않을 수 있기 때문입니다. AWR 보고서를 사용하여 사용 가능한 코어를 추정하려면 AWR 보고서의 첫 번째 섹션에서 CPU 사용률을 도출할 수도 있습니다. 다음은 보고서에서 발췌한 내용입니다.
이 예제에서 CPUs 수는 80이며, 이는 논리적(가상) 임을 나타냅니다CPUs. 또한 이 구성에는 소켓 2개, 각 소켓에 물리적 프로세서 1개(물리적 프로세서 총 2개)가 있고 각 물리적 프로세서 또는 소켓에는 40개의 코어가 있다는 것도 알 수 있습니다. | DBA | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
옵션 2: OS 통계를 사용하여 CPU 사용률을 추정합니다. | OS CPU 사용 통계는 OS에서 직접 확인하거나(sar 또는 다른 호스트 OS 유틸리티 사용) AWR 보고서의 운영 체제 통계 섹션에서 IDLE/(IDLE+BUSY) 값을 검토하여 확인할 수 있습니다. v$osstat 에서 직접 CPU 소비된 초를 볼 수 있습니다. AWR 및 Statspack 보고서에는 운영 체제 통계 섹션에도 이 데이터가 표시됩니다. 동일한 상자에 여러 데이터베이스가 있는 경우 모두 BUSY_에 대해 동일한 v$osstat 값을 갖습니다TIME.
시스템에 다른 주요 CPU 소비자가 없는 경우 다음 공식을 사용하여 CPU 사용률을 계산합니다. 사용률 = 바쁜 시간 / 총 시간 바쁜 시간 = 요구 사항 = v$osstat.BUSY_TIME C = 총 시간(Busy + Idle) C = 용량 = v$ostat.BUSY_TIME + v$ostat.IDLE_TIME 사용률 = BUSY_TIME / (BUSY_TIME + IDLE_TIME) = -1,305,569,937 / (1,305,569,937 + 4,312,718,839 ) = 23% 사용 | DBA | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
옵션 3: 데이터베이스 지표를 사용하여 CPU 사용률을 추정합니다. | 시스템에서 여러 데이터베이스가 실행 중인 경우 보고서 시작 부분에 나타나는 데이터베이스 지표를 사용할 수 있습니다.
CPU 사용률 지표를 가져오려면 다음 공식을 사용합니다. 데이터베이스 CPU 사용량(사용 가능한 CPU 전력의 %) = CPU 시간 / NUM_CPUS / 경과 시간 여기서 CPU 사용량은 CPU 시간별로 설명되며 를 기다리는 시간이 CPU아니라 에 소요된 시간을 나타냅니다CPU. 이 계산 결과는 다음과 같습니다. = 312,625.40 / 11,759.64/80 = 의 33%CPU가 사용 중 코어 수(33%) * 80 = 26.4코어 총 코어 수 = 26.4 * (120%) = 31.68코어 이 두 값 중 큰 값을 사용하여 Amazon RDS 또는 Aurora DB 인스턴스의 CPU 사용률을 계산할 수 있습니다. 참고: IBM 에서 AIX계산된 사용률이 운영 체제 또는 데이터베이스의 값과 일치하지 않습니다. 이러한 값은 다른 운영 체제에서는 일치합니다. | DBA |
작업 | 설명 | 필요한 기술 | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
메모리 통계를 사용하여 메모리 요구 사항을 추정합니다. | AWR 보고서를 사용하여 소스 데이터베이스의 메모리를 계산하고 대상 데이터베이스에서 일치시킬 수 있습니다. 또한 기존 데이터베이스의 성능을 확인하고 메모리 요구 사항을 줄여 비용을 절감하거나 요구 사항을 높여 성능을 향상시켜야 합니다. 이를 위해서는 애플리케이션의 AWR 응답 시간과 서비스 수준 계약(SLA)에 대한 자세한 분석이 필요합니다. Oracle 시스템 전역 영역(SGA) 및 프로그램 전역 영역(PGA) 사용량의 합계를 Oracle의 예상 메모리 사용률로 사용합니다. 대상 메모리의 크기 요구 사항을 결정하려면 OS에 20%를 추가합니다. Oracle 의 경우 모든 RAC 노드에서 예상 메모리 사용률의 합계를 RAC사용하고 총 메모리를 줄입니다. 공통 블록에 저장되기 때문입니다.
사용 중인 총 인스턴스 메모리 = SGA + PGA = 220GB + 45GB = 265GB 버퍼를 20% 추가하세요. 총 인스턴스 메모리 = 1.2 * 265GB = 318GB SGA 및 가 호스트 메모리의 70%를 PGA 차지하기 때문에 총 메모리 요구 사항은 다음과 같습니다. 총 호스트 메모리 = 318/0.7 = 464GB 참고: Amazon RDS for Oracle로 마이그레이션하면 PGA 및 SGA가 사전 정의된 공식을 기반으로 미리 계산됩니다. 사전 계산된 값이 추정치와 비슷한지 확인하세요. | DBA |
작업 | 설명 | 필요한 기술 |
---|---|---|
디스크 I/O, CPU및 메모리 추정치를 기반으로 DB 인스턴스 유형을 결정합니다. | 이전 단계의 추정치를 기반으로 대상 Amazon RDS 또는 Aurora 데이터베이스의 용량은 다음과 같아야 합니다.
대상 AmazonRDS 또는 Aurora 데이터베이스에서 이러한 값을 코어 32개, 512GB 및 처리량 13,600Mbps의 용량을 가진 db.r5.RAM16xlarge 인스턴스 유형에 매핑할 수 있습니다. 자세한 내용은 Oracle 성능 지표를 기반으로 한 블로그 AWS postRight-size Amazon 인스턴스를 참조하세요. RDS | DBA |
관련 리소스
Aurora DB 인스턴스 클래스(Amazon Aurora 설명서)
Amazon RDS DB 인스턴스 스토리지(Amazon RDS 설명서)
AWS 광물 도구
(GitHub 리포지토리)