Rechercher dans le manuel MySQL
15.8.3.5 Configuring InnoDB Buffer Pool Flushing
InnoDB
performs certain tasks in the
background, including flushing
of dirty pages (those
pages that have been changed but are not yet written to the
database files) from the buffer
pool.
InnoDB
starts flushing buffer pool pages when
the percentage of dirty pages in the buffer pool reaches the low
water mark setting defined by
innodb_max_dirty_pages_pct_lwm
.
This option is intended to control the ratio of dirty pages in
the buffer pool and ideally prevent the percentage of dirty
pages from reaching
innodb_max_dirty_pages_pct
. If
the percentage of dirty pages in the buffer pool exceeds
innodb_max_dirty_pages_pct
,
InnoDB
begins to aggressively flush buffer
pool pages.
InnoDB
uses an algorithm to estimate the
required rate of flushing, based on the speed of redo log
generation and the current rate of flushing. The intent is to
smooth overall performance by ensuring that buffer flush
activity keeps up with the need to keep the buffer pool
“clean”. Automatically adjusting the rate of
flushing can help to avoid sudden dips in throughput, when
excessive buffer pool flushing limits the I/O capacity available
for ordinary read and write activity.
InnoDB
uses its log files in a circular
fashion. Before reusing a portion of a log file,
InnoDB
flushes to disk all dirty buffer pool
pages whose redo entries are contained in that portion of the
log file, a process known as a
sharp checkpoint.
If a workload is write-intensive, it generates a lot of redo
information, all written to the log file. If all available space
in the log files is used up, a sharp checkpoint occurs, causing
a temporary reduction in throughput. This situation can happen
even if
innodb_max_dirty_pages_pct
is
not reached.
InnoDB
uses a heuristic-based algorithm to
avoid such a scenario, by measuring the number of dirty pages in
the buffer pool and the rate at which redo is being generated.
Based on these numbers, InnoDB
decides how
many dirty pages to flush from the buffer pool each second. This
self-adapting algorithm is able to deal with sudden changes in
workload.
Internal benchmarking has shown that this algorithm not only maintains throughput over time, but can also improve overall throughput significantly.
Because adaptive flushing can significantly affect the I/O
pattern of a workload, the
innodb_adaptive_flushing
configuration parameter lets you turn off this feature. The
default value for
innodb_adaptive_flushing
is
ON
, enabling the adaptive flushing algorithm.
You can set the value of this parameter in the MySQL option file
(my.cnf
or my.ini
) or
change it dynamically with the
SET
GLOBAL
statement, which requires privileges sufficient
to set global system variables. See
Section 5.1.9.1, “System Variable Privileges”.
For information about fine-tuning InnoDB
buffer pool flushing behavior, see
Section 15.8.3.6, “Fine-tuning InnoDB Buffer Pool Flushing”.
For more information about InnoDB
I/O
performance, see Section 8.5.8, “Optimizing InnoDB Disk I/O”.
Nederlandse vertaling
U hebt gevraagd om deze site in het Nederlands te bezoeken. Voor nu wordt alleen de interface vertaald, maar nog niet alle inhoud.Als je me wilt helpen met vertalingen, is je bijdrage welkom. Het enige dat u hoeft te doen, is u op de site registreren en mij een bericht sturen waarin u wordt gevraagd om u toe te voegen aan de groep vertalers, zodat u de gewenste pagina's kunt vertalen. Een link onderaan elke vertaalde pagina geeft aan dat u de vertaler bent en heeft een link naar uw profiel.
Bij voorbaat dank.
Document heeft de 26/06/2006 gemaakt, de laatste keer de 26/10/2018 gewijzigd
Bron van het afgedrukte document:https://www.gaudry.be/nl/mysql-rf-innodb-performance-adaptive_flushing.html
De infobrol is een persoonlijke site waarvan de inhoud uitsluitend mijn verantwoordelijkheid is. De tekst is beschikbaar onder CreativeCommons-licentie (BY-NC-SA). Meer info op de gebruiksvoorwaarden en de auteur.
Referenties
Deze verwijzingen en links verwijzen naar documenten die geraadpleegd zijn tijdens het schrijven van deze pagina, of die aanvullende informatie kunnen geven, maar de auteurs van deze bronnen kunnen niet verantwoordelijk worden gehouden voor de inhoud van deze pagina.
De auteur Deze site is als enige verantwoordelijk voor de manier waarop de verschillende concepten, en de vrijheden die met de referentiewerken worden genomen, hier worden gepresenteerd. Vergeet niet dat u meerdere broninformatie moet doorgeven om het risico op fouten te verkleinen.