17.11. Gestion des verrous
-
deadlock_timeout (integer)
-
Temps total, en millisecondes, d'attente d'un verrou avant de
tester une condition de verrou mort (
deadlock
). Le test de verrou mort
est assez lent, 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
recherche inutile de verrous morts mais retarde la détection de
vraies erreurs de verrous morts. 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
peut 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.
-
max_locks_per_transaction (integer)
-
La table des verrous partagés est créée pour tracer les verrous
sur max_locks_per_transaction *
(max_connections
+ max_prepared_transactions)
objets (c'est-à-dire des tables) ; de ce fait, au maximum ce
nombre d'objets distincts peuvent être verrouillés
simultanéments. Ce paramètre contrôle le nombre moyen de
verrous d'objets alloués pour chaque transaction ; des
transactions individuelles peuvent verrouiller plus d'objets
tant que l'ensemble des verrous de toutes les transactions
tient dans la table des verrous. Il
ne
s'agit
pas
du nombre de lignes qui peuvent
être verrouillées ; cette valeur n'a pas de limite. La valeur
par défaut, 64, s'est toujours avérée suffisante par le passé,
mais il est possible de l'augmenter si des clients accèdent à
de nombreuses tables différentes au sein d'une unique
transaction. Ce paramètre ne peut être initialisé qu'au
lancement du serveur.
Augmenter ce paramètre peut obliger PostgreSQL™ à réclamer plus de
mémoire partagée System V ou de
sémaphores que ne le permet la configuration par défaut du
système d'exploitation. Voir la Section 16.4.1,
« Mémoire partagée et sémaphore » pour plus
d'informations sur la façon d'ajuster ces paramètres, si
nécessaire.
|