O ext4 não possui a opção dio
mount (acredito que o AIX e o Solaris o façam), mas possui dioread_lock
e dioread_nolock
mount options. Na página de manual mount(8)
:
dioread_lock/dioread_nolock
Controls whether or not ext4 should use the DIO read locking. If the dioread_nolock option is specified ext4 will allocate uninitialized extent before buffer write and convert the extent to initialized after IO completes.
This approach allows ext4 code to avoid using inode mutex, which improves scalability on high speed storages. However this does not work with data journaling and dioread_nolock option will be ignored with kernel warning. Note that dioread_nolock code path is only used for extent-based files. Because of the restrictions this options comprises it is off by default (e.g. dioread_lock).
Dito isso, como outros já mencionaram, a E / S direta é normalmente ativada configurando o sinalizador O_DIRECT
na chamada do sistema open(2)
- isto é, é controlado pelo aplicativo, não por uma opção de montagem. O_DIRECT
é suportado pelo ext4, a menos que você esteja usando a opção data=journal
mount (veja documentação do ext4 e este commit ).
Para InnoDB eu sei que o parâmetro innodb_flush_method
pode ser usado para habilitar O_DIRECT
, mas não estou ciente de uma configuração similar para MyISAM?