InnoDB_flush_method 를 참조하십시오
innodb_flush_method 매개 변수는 InnoDB가 로그 및 데이터 파일을 열고 플러시하는 방법을 지정합니다.
최적화
InnoDB 최적화에서 이 매개 변수를 설정하면 해당되는 경우 데이터베이스 성능이 조정됩니다.
다음 옵션은 InnoDB를 통해 파일을 플러시하는 것입니다.
-
fsync
. InnoDB는 를 사용합니다fsync()
데이터 및 로그 파일을 모두 플러시하기 위한 시스템 호출입니다. 이 옵션이 기본 설정입니다. -
O_DSYNC
. InnoDB는 를 사용합니다O_DSYNC
로그 파일을 열고 플러시하는 옵션과 데이터 파일을 플러시하기 위한 fsync() 옵션을 선택합니다. InnoDB는 사용하지 않습니다O_DSYNC
유닉스의 많은 변종에서 그것에 문제가 있기 때문에 직접. -
O_DIRECT
. InnoDB는 를 사용합니다O_DIRECT
옵션(또는directio()
Solaris의 경우)를 사용하여 데이터 파일을 열고 사용합니다fsync()
데이터 및 로그 파일을 모두 플러시합니다. 이 옵션은 일부 GNU/Linux 버전, FreeBSD 및 Solaris에서 사용할 수 있습니다. -
O_DIRECT_NO_FSYNC
. InnoDB는 를 사용합니다O_DIRECT
입출력 플러싱 중에 옵션을 사용할 수 있지만 이 옵션은 를 건너뜁니다fsync()
이후 시스템 호출 이 옵션은 일부 파일 시스템 유형(예: XFS)에는 적합하지 않습니다. 파일 시스템에 가 필요한지 확실하지 않은 경우fsync()
예를 들어 모든 파일 메타데이터를 보존하려면 시스템 호출을 사용합니다O_DIRECT
옵션을 선택합니다.
관찰
NetApp 랩 테스트에서 는 를 선택합니다 fsync
기본 옵션은 NFS 및 SAN에서 사용되었으며 에 비해 성능이 탁월했습니다 O_DIRECT
. 으로 플러시 방법을 사용하는 동안 O_DIRECT
ONTAP에서는 클라이언트가 4096 블록의 테두리에서 많은 싱글바이트 쓰기를 직렬 방식으로 기록하는 것을 확인했습니다. 이러한 쓰기는 네트워크에서 지연 시간이 증가하고 성능이 저하됩니다.