Computer >> 컴퓨터 >  >> 프로그램 작성 >> 데이터 베이스

Oracle 11g I/O 교정 개요

Oracle ® 데이터베이스가 디스크에 데이터를 읽거나 쓸 때마다 데이터베이스는 디스크 입출력(I/O) 작업을 생성합니다. 많은 소프트웨어 애플리케이션의 성능은 디스크 I/O에 의해 제한되며 I/O 활동이 완료되기를 기다리는 CPU(중앙 처리 장치) 시간의 대부분을 소비하는 애플리케이션은 I/O 바운드입니다. I/O 보정은 이 문제를 해결하는 데 도움이 됩니다.

소개

견고한 I/O 하위 시스템을 구축하는 것은 애플리케이션을 위한 인프라를 구축하는 데 필수적인 부분입니다. I/O 스택의 구성 요소에 제한된 처리량이 있는 경우 I/O 흐름에서 가장 약한 링크가 됩니다. 실제 워크로드는 쉽게 재현할 수 없기 때문에 I/O 하위 시스템의 유효성 검사는 항상 어려운 작업이었습니다.

Oracle Database의 I/O 보정 기능을 사용하면 스토리지 하위 시스템의 성능을 평가하고 I/O 성능 문제가 데이터베이스 또는 스토리지 하위 시스템에 의해 발생하는지 확인할 수 있습니다. I/O 작업을 순차적으로 실행하는 다른 외부 I/O 보정 도구와 달리 Oracle 데이터베이스의 I/O 보정 기능은 스토리지 미디어에 액세스하기 위해 Oracle 데이터 파일을 사용하여 I/O 작업을 무작위로 실행합니다. 이렇게 하면 데이터베이스의 실제 성능과 더 가깝게 일치하는 결과가 생성됩니다.

I/O 보정 기능은 DBMS_RESOURCE_MANAGER.CALIBRATE_IO()라는 PL/SQL 함수를 기반으로 합니다. . Calibrate I/O가 호출되면 다음과 같은 특성을 가진 워크로드를 생성합니다.

  • I/O 집약적, 읽기 전용, 임의 I/O(db_block_size)
  • 대형 블록(1MB) 순차 I/O 워크로드

I/O 보정의 결과를 모니터링하고 예상 처리량 속도(I/O 하위 시스템의 최대 전체 처리량)와 비교해야 합니다. I/O 보정을 사용하여 스토리지 하위 시스템의 성능을 평가하고 I/O 성능 문제가 데이터베이스 호스트 또는 스토리지 하위 시스템에서 발생하는지 여부를 결정할 수 있습니다.

이 블로그에서는 다음 주제를 다룹니다.

  • I/O 보정을 위한 전제 조건
  • I/O 교정 실행
  • 교정 고려사항

I/O 보정을 위한 전제 조건

I/O 보정을 실행하기 전에 다음 요구 사항이 충족되는지 확인하십시오.

  • 사용자에게 SYSDBA 권한이 부여되어야 합니다. 특권.
  • TIMED_STATISTICS TRUE로 설정해야 합니다. .
  • 비동기 I/O를 활성화해야 합니다.

파일 시스템을 사용할 때 FILESYSTEMIO_OPTIONS를 설정하여 비동기 I/O를 활성화할 수 있습니다. SETALL에 대한 초기화 매개변수 .

동기 I/O를 사용하면 I/O 요청이 운영 체제에 제출되면 작업이 완료될 때까지 쓰기 프로세스가 차단됩니다. 비동기 I/O를 사용하면 호출 프로세스가 여전히 실행 중인 다른 요청을 차단하지 않고 작업을 계속합니다.

다음SQL 쿼리를 실행하여 데이터 파일에 대해 비동기 I/O가 활성화되었는지 확인하십시오.

COL NAME FORMAT A50
SELECT NAME,ASYNCH_IO FROM V$DATAFILE F,V$IOSTAT_FILE I
  WHERE  F.FILE#=I.FILE_NO
  AND    FILETYPE_NAME='Data File';

다음 이미지는 쿼리 및 결과를 보여줍니다.

Oracle 11g I/O 교정 개요 셀 명령 결과 나열

참고: 데이터베이스 인스턴스에서 한 번에 하나의 보정만 수행할 수 있습니다.

I/O 교정 실행

Oracle Database의 I/O 보정 기능은 DBMS_RESOURCE_MANAGER.CALIBRATE_IO를 사용하여 액세스합니다. 절차. 이 절차는 최대 IOPS(초당 I/O 요청 수) 및 MBPS(메가바이트의 I/O 작업)를 결정하기 위해 데이터베이스 파일에 I/O 집중 읽기 전용 워크로드(1MB의 임의의 I/O 작업으로 구성)를 발행합니다. 초당) 스토리지 하위 시스템에서 유지할 수 있습니다.

DBMS_RESOURCE_MANAGER.CALIBRATE_IO를 사용한 I/O 보정 절차에는 다음 단계가 포함됩니다.

  1. 이 절차는 모든 데이터베이스 인스턴스에서 모든 데이터 파일에 대해 임의의 데이터베이스 블록 크기 읽기(기본적으로 8KB)를 실행합니다. 이 단계는 출력 매개변수(max_iops)에서 초당 최대 I/O 작업(IOPS)을 제공합니다. ) 데이터베이스가 유지할 수 있습니다. max_iops 값 OLTP(온라인 트랜잭션 처리) 데이터베이스에 대한 중요한 메트릭입니다. 출력 매개변수 actual_latency 이 워크로드에 대한 평균 지연 시간을 제공합니다. 입력 매개변수 max_latency를 사용하여 필요한 특정 목표 지연 시간을 지정할 수 있습니다. , 데이터베이스 블록 크기의 I/O 요청에 대한 최대 허용 대기 시간(밀리초)을 지정합니다.

  2. 이 절차는 모든 데이터베이스 인스턴스의 모든 데이터 파일에 대해 임의의 1MB 읽기를 실행합니다. 이 단계는 출력 매개변수 max_mbps를 산출합니다. , 데이터베이스가 유지할 수 있는 I/O의 최대 MBPS(초당 메가바이트)를 지정합니다. 이는 데이터 웨어하우스의 중요한 지표입니다.

사용자가 num_physical_disks를 제공하면 보정이 더 효율적으로 실행됩니다. 데이터베이스 스토리지 시스템의 대략적인 물리적 디스크 수를 지정하는 입력 매개변수입니다.

I/O 워크로드 실행으로 인한 오버헤드로 인해 I/O 교정은 데이터베이스가 유휴 상태일 때 또는 사용량이 적은 시간에만 수행하여 I/O 교정 워크로드가 일반 데이터베이스 워크로드에 미치는 영향을 최소화해야 합니다.

다음 이미지는 DBMS_RESOURCE_MANAGER.CALIBRATE_IO의 출력을 보여줍니다. 절차:

Oracle 11g I/O 교정 개요 셀 명령 결과 나열

교정 고려사항

I/O 보정을 실행하기 전에 다음 고려 사항을 고려하십시오.

  • 동일한 스토리지 하위 시스템을 사용하는 데이터베이스에서 한 번에 하나의 교정만 실행합니다. 동일한 스토리지 하위 시스템을 사용하는 별도의 데이터베이스에서 동시에 교정을 실행하면 교정이 실패합니다.
  • 인스턴스의 I/O를 최소화하기 위해 데이터베이스를 정지합니다.
  • Oracle RAC(Real Application Clusters) 구성의 경우 노드 전체에 걸쳐 스토리지 하위 시스템을 보정하기 위해 모든 인스턴스가 열려 있는지 확인하십시오.
  • Oracle RAC 데이터베이스의 경우 모든 인스턴스에서 워크로드가 동시에 생성됩니다.
  • num_physical_disks 입력 매개변수는 선택 사항입니다. 이 매개변수를 데이터베이스 스토리지 시스템의 대략적인 물리적 디스크 수로 설정하면 보정이 더 빠르고 정확해집니다.

I/O 교정 프로세스 중 언제든지 V$IO_CALIBRATION_STATUS에서 교정 상태를 쿼리할 수 있습니다. 보다. I/O 보정이 성공적으로 완료된 후 DBA_RSRC_IO_CALIBRATE에서 결과를 확인합니다. 다음 예와 유사한 표:

START_TIME 31-AUG-17 04.40.09.920679 AM
END_TIME 31-AUG-17 04.47.41.210939 AM
MAX_IOPS 39
MAX_MBPS 60
MAX_PMBPS 69
지연시간 24
NUM_PHYSICAL_DISKS   1



결론

IORM(I/O Resource Management) 및 I/O 보정 기능은 현재 I/O 아키텍처의 한계를 이해하는 데 유용합니다. 보정이 완료된 후 정보를 사용하여 적절한 I/O 설계 및 크기 조정을 수행할 수 있습니다. 피드백 탭을 사용하여 의견을 남기거나 질문하십시오.