innodb_flush_method
Il parametro innodb_Flush_Method specifica come InnoDB apre e svuota i file di log e di dati.
Ottimizzazioni
Nell'ottimizzazione InnoDB, l'impostazione di questo parametro modifica le prestazioni del database, se applicabile.
Le seguenti opzioni consentono di svuotare i file tramite InnoDB:
-
fsync
. InnoDB utilizzafsync()
chiamata di sistema per cancellare sia i file di dati che i file di registro. Questa opzione è l'impostazione predefinita. -
O_DSYNC
. InnoDB utilizzaO_DSYNC
possibilità di aprire e svuotare i file di log e fsync() per svuotare i file di dati. InnoDB non utilizzaO_DSYNC
Direttamente, perché ci sono stati problemi con esso su molte varietà di UNIX. -
O_DIRECT
. InnoDB utilizzaO_DIRECT
(oppuredirectio()
Su Solaris) per aprire i file di dati e gli usifsync()
per cancellare sia i file di dati che i file di registro. Questa opzione è disponibile su alcune versioni di GNU/Linux, FreeBSD e Solaris. -
O_DIRECT_NO_FSYNC
. InnoDB utilizzaO_DIRECT
Durante lo spurgo dell'i/o, tuttavia, saltafsync()
chiamata di sistema successiva. Questa opzione non è adatta per alcuni tipi di file system (ad esempio, XFS). Se non si è certi che il file system richieda unfsync()
chiamata di sistema, ad esempio per conservare tutti i metadati dei file, utilizzareO_DIRECT
invece.
Osservazione
Nei test di laboratorio di NetApp, il fsync
L'opzione predefinita è stata utilizzata su NFS e SAN ed è stata un'improvvisazione per le prestazioni eccezionale rispetto a O_DIRECT
. Mentre si utilizza il metodo di lavaggio come O_DIRECT
Con ONTAP, abbiamo osservato che il client scrive molte scritture a byte singolo al margine del blocco 4096 in modo seriale. Queste operazioni di scrittura hanno aumentato la latenza sulla rete e degradato le performance.