innodb_flush_method
O parâmetro innodb_flush_method especifica como o InnoDB abre e limpa os arquivos de log e dados.
Otimizações
Na otimização InnoDB, a configuração desse parâmetro ajusta o desempenho do banco de dados quando aplicável.
As seguintes opções são para limpar os arquivos através do InnoDB:
-
fsync. O InnoDB usa afsync()chamada do sistema para liberar os arquivos de dados e log. Esta opção é a predefinição. -
O_DSYNC. InnoDB usa aO_DSYNCopção para abrir e lavar os arquivos de log e fsync() para lavar os arquivos de dados. InnoDB não usaO_DSYNCdiretamente, porque houve problemas com ele em muitas variedades de UNIX. -
O_DIRECT. O InnoDB usa aO_DIRECTopção (oudirectio()no Solaris) para abrir os arquivos de dados e usafsync()para limpar os arquivos de dados e log. Esta opção está disponível em algumas versões GNU/Linux, FreeBSD e Solaris. -
O_DIRECT_NO_FSYNC. O InnoDB usa aO_DIRECTopção durante a lavagem de e/S; no entanto, ele ignora afsync()chamada do sistema depois. Essa opção não é adequada para alguns tipos de sistemas de arquivos (por exemplo, XFS). Se você não tiver certeza se o sistema de arquivos requer umafsync()chamada de sistema, por exemplo, para preservar todos os metadados do arquivo, use aO_DIRECTopção.
Observação
Nos testes de laboratório do NetApp, a fsync opção padrão foi usada em NFS e SAN, e foi um ótimo improvisador de desempenho em comparação com O_DIRECT. Ao usar o método flush como O_DIRECT no ONTAP, observamos que o cliente escreve muitas gravações de byte único na borda do bloco 4096 em modo serial. Essas gravações aumentam a latência na rede e degradam o desempenho.