5. 다이렉트 I/O

  • RAW 디바이스에 대한 특징 중에서 디스크 I/O 발생 시 유닉스 버퍼 캐시를 경유하지 않는 점이 파일시스템에비해 장점
  • 파일시스템도 추가적인 설정을 통해서 유닉스 버퍼캐쉬를 경유하지 않는 다이렉트 I/O 수행이 가능하다.
  • 오라클 DB에서 사용되는 파일시스템이 다이렉트 I/O로 수행되기 위해서는 OS와 스토리지 환경에 따라서 다음과 같이 다른 설정 방식을
    거쳐야 한다.
시스템설정방법
리눅스,AIX오라클의 FILESYSTEMIO_OPTIONS초기화 파라미터를 DIRECTIO or SETALL로 설정
SETALL 값으로 설정하면 다이렉트I/O뿐아니라 ASYNCH I/O를 동시에 사용하게 된다.
리눅스: Red Hat Enterprise 3.0버전 이후부터 다이렉트 I/O를 지원
AIX : JFS파일시스템 - 다이렉트 I/O를 지원, JFS2파일시스템 - Concurrent I/O지원
Concurrent I/O는 다이렉트 I/O기능에 추가적으로 Inode락을 잡지 않기때문에 성능상 더 우수
Solaris해당 파일 시스템이 FORCEDIRECTIO옵션을 통해서 마운트가되면 다이렉트 I/O가 수행
베리타스베리타스의 VxFS를 사용하는 HP-UX,Solaris,AIX시스템에서는 파일 시스템을 convosync=direct와 mincache=direct옵션을 사용해서
마운트함으로써 다이렉트 I/O설정이 가능

1) 데이터변경업무는 적고 한정된 일부 데이터에대해서 주로 조회하는 시스템

  • 유닉스의 버퍼캐시를 사용하는것이 조금이라도 디스크I/O를 줄일수 있기 때문에 성능상 더 유리할 수 있다.

2) OLTP시스템

  • 쓰기에 대한 디스크 I/O발생빈도가 높기때문에 다이렉트 I/O가 유리

3) 이력조회와 같이 넓은 범위의 데이터 영역을 조회하는 OLTP업무

  • 디스크에서 데이터를 조회할 가능성이 높기 때문에 다이렉트 I/O가유리

4) 일반적인 OLTP시스템

  • 참조 빈도가 높은 데이터가 최대한 SGA영역에서 읽혀질 수 있도록 SGA영역을 충분히 설정하면서 다이렉트 I/O를 사용하여 디스크 I/O성능도 최대화 하는것이 좋은방법

5) DW시스템과 같이 실제 광범위하게 데이터를 사용하여 디스크 I/O를 많이 발생시키는 시스템의경우

  • 유닉스 버퍼캐쉬를 통해 얻는 이점이 제한적이므로 다이렉트 I/O가 유리

※ 파일시스템 마운트 속성확인

SUNHPIBMLinux
mount
cat /etc/mnttab
mount
cat /etc/mnttab
mount
cat /etc/filesystems
mount
cat /etc/mtab
cat /etc/fstab