Skip to main content
Enterprise applications
본 한국어 번역은 사용자 편의를 위해 제공되는 기계 번역입니다. 영어 버전과 한국어 버전이 서로 어긋나는 경우에는 언제나 영어 버전이 우선합니다.

filesystemio_options 를 참조하십시오

기여자 kaminis85

Oracle 초기화 매개 변수 filesystemio_options 비동기식 및 직접 입출력의 사용을 제어합니다

ASA r2에서 filesystemio_options의 동작 및 권장 사항은 해당 매개변수가 Oracle 전용이며 스토리지 플랫폼에 종속되지 않으므로 AFF/ FAS 시스템과 동일합니다. ASA r2는 AFF/ FAS 처럼 ONTAP 사용하므로 동일한 모범 사례가 적용됩니다.

일반적인 인식과 달리 비동기식 및 직접I/O는 상호 배타적이지 않습니다. NetApp은 이 매개 변수가 고객 환경에서 종종 잘못 구성되며 이 잘못된 구성이 여러 성능 문제의 직접적인 원인이 된다는 것을 목격했습니다.

비동기식 I/O에서는 Oracle I/O 작업을 병렬화할 수 있습니다. 다양한 운영 체제에서 비동기식 I/O를 사용할 수 있게 되기 전에 사용자는 수많은 dbwriter 프로세스를 구성했고 서버 프로세스 구성을 변경했습니다. 비동기식 I/O를 통해 운영 체제는 매우 효율적인 병렬 방식으로 데이터베이스 소프트웨어 대신 I/O를 수행합니다. 이 프로세스는 데이터를 위험에 처하게 하지 않으며 Oracle 로깅 재실행 같은 중요한 작업은 여전히 동기식으로 수행됩니다.

직접 I/O는 운영 체제 버퍼 캐시를 우회합니다. UNIX 시스템의 I/O는 일반적으로 운영 체제 버퍼 캐시를 통해 흐릅니다. 이는 내부 캐시에서 유지되지 않는 애플리케이션에 유용하지만 Oracle은 SGA 내부에 자체 버퍼 캐시가 있습니다. 거의 모든 경우 운영 체제 버퍼 캐시를 사용하는 것보다 직접 I/O를 활성화하고 서버 RAM을 SGA에 할당하는 것이 더 낫습니다. Oracle SGA는 메모리를 더 효율적으로 사용하며 I/O가 운영 체제 버퍼를 통해 흐를 때 지연 시간을 증가시키는 추가 처리가 적용됩니다. 증가한 지연 시간은 짧은 지연 시간이 중요한 요구사항일 때 쓰기 집약적 I/O에서 특히 뚜렷하게 나타납니다.

의 옵션 filesystemio_options 다음과 같습니다.

  • * 비동기 * Oracle은 처리를 위해 I/O 요청을 OS에 제출합니다. 이 프로세스는 Oracle I/O가 완료되기를 기다리면서 I/O 병렬화를 증가시키는 것이 아니라 Oracle이 다른 작업을 수행할 수 있도록 합니다.

  • * directio. * Oracle은 호스트 OS 캐시를 통해 I/O를 라우팅하지 않고 물리적 파일에 직접 I/O를 수행합니다.

  • * 없음. * Oracle은 동기 및 버퍼링된 I/O를 사용합니다 이 구성에서는 공유 서버와 전용 서버 프로세스 중 무엇을 선택할지 그리고 dbwriter의 개수가 어떻게 되는지가 더 중요합니다.

  • * SetAll. * Oracle은 비동기 I/O와 직접 I/O를 모두 사용합니다 거의 모든 경우에 를 사용합니다 setall 최적의 상태.

참고 ASM 환경에서 Oracle은 ASM 관리 디스크에 대해 직접 I/O와 비동기 I/O를 자동으로 사용합니다. filesystemio_options ASM 디스크 그룹에는 영향을 미치지 않습니다. ASM을 사용하지 않는 배포 환경(예: SAN LUN의 파일 시스템)의 경우 다음과 같이 설정하십시오. filesystemio_options = setall. 이를 통해 최적의 성능을 위해 비동기 및 직접 I/O를 모두 사용할 수 있습니다.

일부 구형 운영 체제는 비동기 I/O에 문제가 있었고, 이로 인해 비동기 I/O를 피해야 한다는 시대착오적인 조언이 나왔습니다. 하지만 비동기 I/O는 안정적이며 현재 모든 운영 체제에서 완벽하게 지원됩니다. 특정 운영체제 버그가 발견되지 않는 한, 해당 기능을 비활성화할 이유가 없습니다.

데이터베이스가 버퍼링된 I/O를 사용해온 경우 직접 I/O로 전환하면 SGA 크기 변경도 보장됩니다. 버퍼링된 I/O를 비활성화하면 호스트 운영 체제 캐시가 데이터베이스에 제공하는 성능 이점이 없어집니다. RAM을 SGA에 다시 추가하면 이 문제가 해결되며 결과적으로 I/O 성능이 개선될 것입니다.

거의 모든 경우에 Oracle SGA에 운영 체제 버퍼 캐싱보다 RAM을 사용하는 것이 더 낫지만 최고의 가치를 결정하는 것은 불가능할 수 있습니다. 예를 들어, 간헐적인 액티브 Oracle 인스턴스가 있는 데이터베이스 서버에는 아주 작은 SGA 크기의 버퍼링된 I/O를 사용하는 것이 더 나을 것입니다. 이렇게 하면 실행 중인 모든 데이터베이스 인스턴스를 통해 운영 체제의 나머지 가용 RAM을 유연하게 사용할 수 있습니다. 이는 매우 드문 상황이지만 일부 고객 사이트에서 관찰된 바 있습니다.

팁 * NetApp 권장 설정* filesystemio_options 에게 `setall`하지만 특정 상황에서는 호스트 버퍼 캐시 손실로 인해 Oracle SGA를 늘려야 할 수도 있다는 점에 유의하십시오. ASA r2 시스템은 지연 시간이 짧은 SAN 워크로드에 최적화되어 있으므로 setall을 사용하는 것은 고성능 Oracle 배포를 위한 ASA 설계와 완벽하게 부합합니다.