Rechercher dans le manuel MySQL
15.8.8 Configuring Spin Lock Polling
Many InnoDB mutexes and rw-locks are reserved for a short time. On a multi-core system, it can be more efficient for a thread to continuously check if it can acquire a mutex or rw-lock for a while before sleeping. If the mutex or rw-lock becomes available during this polling period, the thread can continue immediately, in the same time slice. However, too-frequent polling by multiple threads of a shared object can cause “cache ping pong”, which results in processors invalidating portions of each other's cache. InnoDB minimizes this issue by waiting a random time between subsequent polls. The delay is implemented as a busy loop.
You can control the maximum delay between testing a mutex or
rw-lock using the
innodb_spin_wait_delay
system
variable. The duration of the delay loop depends on the C compiler
and the target processor. (In the 100MHz Pentium era, the unit of
delay was one microsecond.) On a system where all processor cores
share a fast cache memory, you might reduce the maximum delay or
disable the busy loop altogether by setting
innodb_spin_wait_delay=0
. On a
system with multiple processor chips, the effect of cache
invalidation can be more significant and you might increase the
maximum delay.
The default value of
innodb_spin_wait_delay
is
6
. The spin wait delay is a dynamic, global
parameter that you can specify in the MySQL option file
(my.cnf
or my.ini
) or change
at runtime with the
SET GLOBAL
innodb_spin_wait_delay=
statement, where
delay
is the desired
maximum delay. Changing the setting at runtime requires privileges
sufficient to set global system variables. See
Section 5.1.9.1, “System Variable Privileges”.
delay
For performance considerations for InnoDB locking operations, see Section 8.11, “Optimizing Locking Operations”.
Traduction non disponible
Le manuel MySQL n'est pas encore traduit en français sur l'infobrol. Seule la version anglaise est disponible pour l'instant.
Document créé le 26/06/2006, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/mysql-rf-innodb-performance-spin-lock-polling.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.