rajout du gras pour faire du tl;dr

This commit is contained in:
Daniel Jakots 2017-11-23 15:26:17 -05:00
parent 6c28f1bc93
commit b6f4a63d37

View file

@ -142,7 +142,7 @@ Ce fichier doit être `-rw-------` (600).
La configuration par défaut est fait pour s'adapter à toutes sortes de machines, elle n'est donc pas adapté en terme de performances. Nous allons voir ici quelques paramètres qui peuvent améliorer les performances de PostgreSQL.
* shared_buffers : Ce paramètre détermine la quantité de mémoire
* **shared_buffers** : Ce paramètre détermine la quantité de mémoire
dédiée à PostgreSQL pour mettre en cache les données. Il est
recommandé de mettre **1/4 de la quantité de RAM total** de votre
machine.
@ -150,21 +150,21 @@ La configuration par défaut est fait pour s'adapter à toutes sortes de machine
mémoire partagé du kernel, pour la changer, ajoutez kernel.shmmax =
VALEUR en octets dans le sysctl.
* max_connections : Détermine le nombre maximum de clients connectés simultanément. Ce paramètre est très important pour certains paramètres car les ressources mémoires qui sont ou seront allouées par client, il est donc suggérer d'utiliser le maximum de mémoire possible. work_mem x nb_clients = maxRAM
* **max_connections** : Détermine le nombre maximum de clients connectés simultanément. Ce paramètre est très important pour certains paramètres car les ressources mémoires qui sont ou seront allouées par client, il est donc suggérer d'utiliser le maximum de mémoire possible. work_mem x nb_clients = maxRAM
* work_mem : Le work_mem permet d'éviter lors de grosses opérations, de swapper les données sur le disque pour les traiter. Attention il est rattaché au nombres de clients ! Par exemple un work_mem de 50Mo avec 30 utilisateurs, cela donne 1.5Go, il est donc facile de faire passer la machine en out-of-memory…
* **work_mem** : Le work_mem permet d'éviter lors de grosses opérations, de swapper les données sur le disque pour les traiter. Attention il est rattaché au nombres de clients ! Par exemple un work_mem de 50Mo avec 30 utilisateurs, cela donne 1.5Go, il est donc facile de faire passer la machine en out-of-memory…
* effective_cache_size : Ce paramètre détermine combien de mémoire devrait être disponible pour l'OS et les mémoire tampons de PostgreSQL, ce n'est pas une allocation. Cette valeur est seulement utilisé par le planificateur de requêtes de PostgreSQL pour savoir si les requêtes vont tenir en RAM ou pas. Il est recommandé de mettre 50% de la RAM voir 75%.
* **effective_cache_size** : Ce paramètre détermine combien de mémoire devrait être disponible pour l'OS et les mémoire tampons de PostgreSQL, ce n'est pas une allocation. Cette valeur est seulement utilisé par le planificateur de requêtes de PostgreSQL pour savoir si les requêtes vont tenir en RAM ou pas. Il est recommandé de mettre **50% de la RAM voir 75%**.
* checkpoint_segments : PostgreSQL écrit les transactions effectuées dans un fichier de log (nommé _WAL_, pour _Write Ahead Log_). Un segment est en fait un fichier, qui fait 16Mo par défaut. Un checkpoint est fait à chaque _checkpoint_segment_, par défaut 3, donc 3x16 = 48Mo, ce qui peut être un goulot d'étranglement de faire des checkpoints tout les 48Mo. Il est recommandé de le mettre entre 8 (faible écritures sur les bases) et 64 (beaucoup d'écritures). 16 est une bonne valeur pour un usage standard.
* **checkpoint_segments** : PostgreSQL écrit les transactions effectuées dans un fichier de log (nommé _WAL_, pour _Write Ahead Log_). Un segment est en fait un fichier, qui fait 16Mo par défaut. Un checkpoint est fait à chaque _checkpoint_segment_, par défaut 3, donc 3x16 = 48Mo, ce qui peut être un goulot d'étranglement de faire des checkpoints tous les 48Mo. Il est recommandé de le mettre **entre 8 (faible écritures sur les bases) et 64 (beaucoup d'écritures)**. 16 est une bonne valeur pour un usage standard.
* checkpoint_completion_target : À partir de PostgreSQL 8.3, les checkpoint sont écrits pendant que le système commence à travailler sur le prochain checkpoint. Par défaut la valeur est de 0.5 (50%), et donc PostgreSQL s'occupe de finir le checkpoint quand le suivant est fini à 50%. Il est recommandé de fixer 90%.
* **checkpoint_completion_target** : À partir de PostgreSQL 8.3, les checkpoint sont écrits pendant que le système commence à travailler sur le prochain checkpoint. Par défaut la valeur est de 0.5 (50%), et donc PostgreSQL s'occupe de finir le checkpoint quand le suivant est fini à 50%. Il est recommandé de **fixer 90%**.
* autovacuum : PostgreSQL réalise de nombreuses maintenance pour nettoyer la base de données. C'est une mauvaise idée de le de désactiver complètement, mais cela peut-être utile de le désactiver temporairement, notamment en cas de forte charge.
* **autovacuum** : PostgreSQL réalise de nombreuses maintenance pour nettoyer la base de données. C'est une mauvaise idée de le de désactiver complètement, mais cela peut-être utile de le désactiver temporairement, notamment en cas de forte charge.
* wal_buffers : La valeur par défaut est bien trop petite (64Ko), il est recommandé de la passer de 1Mo à 16Mo.
* **wal_buffers** : La valeur par défaut est bien trop petite (64Ko), il est recommandé de la passer de 1Mo à 16Mo.
* maintenance_work_mem : voir <http://blog.guillaume.lelarge.info/index.php/post/2015/07/14/Comment-quantifier-le-maintenance_work_mem>
* **maintenance_work_mem** : voir <http://blog.guillaume.lelarge.info/index.php/post/2015/07/14/Comment-quantifier-le-maintenance_work_mem>
* Calculateur automatique : <http://pgtune.leopard.in.ua/>