Type: integer
Défaut: 1000 (1s)
Min: 1 (1ms)
Max: 2147483647 (2147483647ms)
Unité: milliseconds (ms)
Contexte: superuser
Redémarrer: false

Durée totale d'attente d'un verrou avant de tester une condition de verrou mort (deadlock). Le test de verrou mort est très coûteux, le serveur ne l'effectue donc pas à chaque fois qu'il attend un verrou. Les développeurs supposent (de façon optimiste ?) que les verrous morts sont rares dans les applications en production et attendent simplement un verrou pendant un certain temps avant de lancer une recherche de blocage. Augmenter cette valeur réduit le temps perdu en recherches inutiles de verrous morts mais retarde la détection de vraies erreurs de verrous morts. Si cette valeur est indiquée sans unité, elle est comprise comme un nombre de millisecondes. La valeur par défaut est une seconde (1s), ce qui est probablement la plus petite valeur pratique. Sur un serveur en pleine charge, elle peut être augmentée. Idéalement, ce paramétrage doit dépasser le temps typique d'une transaction de façon à augmenter la probabilité qu'un verrou soit relâché avant que le processus en attente ne décide de lancer une recherche de verrous morts. Seuls les superutilisateurs peuvent modifier cette configuration.

Quand log_lock_waits est configuré, ce paramètre détermine aussi la durée d'attente avant qu'un message ne soit enregistré dans les journaux concernant cette attente. Pour comprendre ces délais de verrouillage, il peut être utile de configurer deadlock_timeout à une valeur extraordinairement basse.

Recommandations [EN]

Default is fine, except when you are troubleshooting/monitoring locks. In that case, you may want to lower it to as little as 50ms.

Commentaires