Rechercher dans le manuel MySQL
15.8.6 Using Asynchronous I/O on Linux
InnoDB
uses the asynchronous I/O subsystem
(native AIO) on Linux to perform read-ahead and write requests for
data file pages. This behavior is controlled by the
innodb_use_native_aio
configuration option, which applies to Linux systems only and is
enabled by default. On other Unix-like systems,
InnoDB
uses synchronous I/O only. Historically,
InnoDB
only used asynchronous I/O on Windows
systems. Using the asynchronous I/O subsystem on Linux requires
the libaio
library.
With synchronous I/O, query threads queue I/O requests, and
InnoDB
background threads retrieve the queued
requests one at a time, issuing a synchronous I/O call for each.
When an I/O request is completed and the I/O call returns, the
InnoDB
background thread that is handling the
request calls an I/O completion routine and returns to process the
next request. The number of requests that can be processed in
parallel is n
, where
n
is the number of
InnoDB
background threads. The number of
InnoDB
background threads is controlled by
innodb_read_io_threads
and
innodb_write_io_threads
. See
Section 15.8.5, “Configuring the Number of Background InnoDB I/O Threads”.
With native AIO, query threads dispatch I/O requests directly to
the operating system, thereby removing the limit imposed by the
number of background threads. InnoDB
background
threads wait for I/O events to signal completed requests. When a
request is completed, a background thread calls an I/O completion
routine and resumes waiting for I/O events.
The advantage of native AIO is scalability for heavily I/O-bound
systems that typically show many pending reads/writes in
SHOW ENGINE INNODB STATUS\G
output. The
increase in parallel processing when using native AIO means that
the type of I/O scheduler or properties of the disk array
controller have a greater influence on I/O performance.
A potential disadvantage of native AIO for heavily I/O-bound systems is lack of control over the number of I/O write requests dispatched to the operating system at once. Too many I/O write requests dispatched to the operating system for parallel processing could, in some cases, result in I/O read starvation, depending on the amount of I/O activity and system capabilities.
If a problem with the asynchronous I/O subsystem in the OS
prevents InnoDB
from starting, you can start
the server with
innodb_use_native_aio=0
. This
option may also be disabled automatically during startup if
InnoDB
detects a potential problem such as a
combination of tmpdir
location,
tmpfs
file system, and Linux kernel that does
not support asynchronous I/O on tmpfs
.
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-linux-native-aio.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.