performances postgresql au niveau du système · virtualisation non recommandé mutualisation des...
TRANSCRIPT
![Page 1: Performances PostgreSQL au niveau du système · Virtualisation Non recommandé Mutualisation des disques Masque les ressources Overcommit Gestion des vCPU multiples ... 4 par défaut,](https://reader031.vdocuments.net/reader031/viewer/2022022610/5b95bab209d3f29b178ca978/html5/thumbnails/1.jpg)
1
Performances PostgreSQLau niveau du système
![Page 2: Performances PostgreSQL au niveau du système · Virtualisation Non recommandé Mutualisation des disques Masque les ressources Overcommit Gestion des vCPU multiples ... 4 par défaut,](https://reader031.vdocuments.net/reader031/viewer/2022022610/5b95bab209d3f29b178ca978/html5/thumbnails/2.jpg)
2
A propos de l'auteur
●Auteur: Julien Rouhaud●[email protected]●Société: DALIBO●Date: Mars 2013●URL: www.dalibo.org
![Page 3: Performances PostgreSQL au niveau du système · Virtualisation Non recommandé Mutualisation des disques Masque les ressources Overcommit Gestion des vCPU multiples ... 4 par défaut,](https://reader031.vdocuments.net/reader031/viewer/2022022610/5b95bab209d3f29b178ca978/html5/thumbnails/3.jpg)
3
Licence Create CommonsBY-NC-SA
● Libres de redistribuer et/ou modifier cette création selon les conditions suivantes :
● Paternité● Pas d'utilisation commerciale● Partage des conditions initiales à l'identique
![Page 4: Performances PostgreSQL au niveau du système · Virtualisation Non recommandé Mutualisation des disques Masque les ressources Overcommit Gestion des vCPU multiples ... 4 par défaut,](https://reader031.vdocuments.net/reader031/viewer/2022022610/5b95bab209d3f29b178ca978/html5/thumbnails/4.jpg)
4
Introduction
● L'optimisation n'est pas un processus unique● Processus itératif
● Va de pair avec la supervision
![Page 5: Performances PostgreSQL au niveau du système · Virtualisation Non recommandé Mutualisation des disques Masque les ressources Overcommit Gestion des vCPU multiples ... 4 par défaut,](https://reader031.vdocuments.net/reader031/viewer/2022022610/5b95bab209d3f29b178ca978/html5/thumbnails/5.jpg)
5
Niveaux d'optimisation
● Système hôte, niveau matériel● Configuration de PostgreSQL● Répartition des données● Application, modélisation et requêtes
![Page 6: Performances PostgreSQL au niveau du système · Virtualisation Non recommandé Mutualisation des disques Masque les ressources Overcommit Gestion des vCPU multiples ... 4 par défaut,](https://reader031.vdocuments.net/reader031/viewer/2022022610/5b95bab209d3f29b178ca978/html5/thumbnails/6.jpg)
6
Matériel
● Processeur● Mémoire● Disques● Système disque
![Page 7: Performances PostgreSQL au niveau du système · Virtualisation Non recommandé Mutualisation des disques Masque les ressources Overcommit Gestion des vCPU multiples ... 4 par défaut,](https://reader031.vdocuments.net/reader031/viewer/2022022610/5b95bab209d3f29b178ca978/html5/thumbnails/7.jpg)
7
CPU
● Principaux critères● Nombre de cœurs● Fréquence● Taille du cache
● 32/64 bits
![Page 8: Performances PostgreSQL au niveau du système · Virtualisation Non recommandé Mutualisation des disques Masque les ressources Overcommit Gestion des vCPU multiples ... 4 par défaut,](https://reader031.vdocuments.net/reader031/viewer/2022022610/5b95bab209d3f29b178ca978/html5/thumbnails/8.jpg)
8
Choisir le CPU
● PostgreSQL n'est pas multithreadé● Connaître le type d'application● Privilégier
● le nombre de cœurs (type appli web)● La fréquence (type DW)
![Page 9: Performances PostgreSQL au niveau du système · Virtualisation Non recommandé Mutualisation des disques Masque les ressources Overcommit Gestion des vCPU multiples ... 4 par défaut,](https://reader031.vdocuments.net/reader031/viewer/2022022610/5b95bab209d3f29b178ca978/html5/thumbnails/9.jpg)
9
RAM
● Essentiel pour les performances● De moins en moins cher● « Plus il y en a, mieux c'est »
![Page 10: Performances PostgreSQL au niveau du système · Virtualisation Non recommandé Mutualisation des disques Masque les ressources Overcommit Gestion des vCPU multiples ... 4 par défaut,](https://reader031.vdocuments.net/reader031/viewer/2022022610/5b95bab209d3f29b178ca978/html5/thumbnails/10.jpg)
10
Disques
● 3 technologies : SATA,SAS et SSD● Temps d'accès / débit● Tester les disques
![Page 11: Performances PostgreSQL au niveau du système · Virtualisation Non recommandé Mutualisation des disques Masque les ressources Overcommit Gestion des vCPU multiples ... 4 par défaut,](https://reader031.vdocuments.net/reader031/viewer/2022022610/5b95bab209d3f29b178ca978/html5/thumbnails/11.jpg)
11
RAID
● Tolérance à la panne, performances● Éviter le RAID 5● Privilégier RAID 1 / RAID 10● Attention à la qualité de la carte
![Page 12: Performances PostgreSQL au niveau du système · Virtualisation Non recommandé Mutualisation des disques Masque les ressources Overcommit Gestion des vCPU multiples ... 4 par défaut,](https://reader031.vdocuments.net/reader031/viewer/2022022610/5b95bab209d3f29b178ca978/html5/thumbnails/12.jpg)
12
RAID - cache
● Toujours activer le cache en lecture ● Cache en écriture
● Protégé par une batterie● Vérifier l'état de la batterie
![Page 13: Performances PostgreSQL au niveau du système · Virtualisation Non recommandé Mutualisation des disques Masque les ressources Overcommit Gestion des vCPU multiples ... 4 par défaut,](https://reader031.vdocuments.net/reader031/viewer/2022022610/5b95bab209d3f29b178ca978/html5/thumbnails/13.jpg)
13
Virtualisation
● Non recommandé● Mutualisation des disques● Masque les ressources● Overcommit● Gestion des vCPU multiples
![Page 14: Performances PostgreSQL au niveau du système · Virtualisation Non recommandé Mutualisation des disques Masque les ressources Overcommit Gestion des vCPU multiples ... 4 par défaut,](https://reader031.vdocuments.net/reader031/viewer/2022022610/5b95bab209d3f29b178ca978/html5/thumbnails/14.jpg)
14
Système d'exploitation
● Quel système choisir ?● Quelle configuration ?
![Page 15: Performances PostgreSQL au niveau du système · Virtualisation Non recommandé Mutualisation des disques Masque les ressources Overcommit Gestion des vCPU multiples ... 4 par défaut,](https://reader031.vdocuments.net/reader031/viewer/2022022610/5b95bab209d3f29b178ca978/html5/thumbnails/15.jpg)
15
Choix du système
● PostgreSQL fonctionne sur de nombreux OS● Principalement développé et testé sous linux● Windows intéressant pour les développeurs
![Page 16: Performances PostgreSQL au niveau du système · Virtualisation Non recommandé Mutualisation des disques Masque les ressources Overcommit Gestion des vCPU multiples ... 4 par défaut,](https://reader031.vdocuments.net/reader031/viewer/2022022610/5b95bab209d3f29b178ca978/html5/thumbnails/16.jpg)
16
Noyau
● Choisir le noyau le plus récent● Plus stable● Plus de compatibilité● Plus de fonctionnalité● Meilleures performances
● Ne pas compiler son noyau
![Page 17: Performances PostgreSQL au niveau du système · Virtualisation Non recommandé Mutualisation des disques Masque les ressources Overcommit Gestion des vCPU multiples ... 4 par défaut,](https://reader031.vdocuments.net/reader031/viewer/2022022610/5b95bab209d3f29b178ca978/html5/thumbnails/17.jpg)
17
Configuration du noyau
● Mémoire partagée● Overcommit● Swap● Affinité cœurs / espaces mémoire● Configuration dans /etc/sysctl.conf● Activer avec sysctl -p
![Page 18: Performances PostgreSQL au niveau du système · Virtualisation Non recommandé Mutualisation des disques Masque les ressources Overcommit Gestion des vCPU multiples ... 4 par défaut,](https://reader031.vdocuments.net/reader031/viewer/2022022610/5b95bab209d3f29b178ca978/html5/thumbnails/18.jpg)
18
Mémoire partagée
● SHMMAX● SHMALL● Valeur basse par défaut pour Debian
![Page 19: Performances PostgreSQL au niveau du système · Virtualisation Non recommandé Mutualisation des disques Masque les ressources Overcommit Gestion des vCPU multiples ... 4 par défaut,](https://reader031.vdocuments.net/reader031/viewer/2022022610/5b95bab209d3f29b178ca978/html5/thumbnails/19.jpg)
19
Cache disque
● Gestion des « dirty pages »● vm.dirty_ratio ● vm.dirty_background_ratio
● vm.dirty_bytes● vm.dirty_background_bytes
● Configurer pour avoir qq centaines de Mo à synchroniser
![Page 20: Performances PostgreSQL au niveau du système · Virtualisation Non recommandé Mutualisation des disques Masque les ressources Overcommit Gestion des vCPU multiples ... 4 par défaut,](https://reader031.vdocuments.net/reader031/viewer/2022022610/5b95bab209d3f29b178ca978/html5/thumbnails/20.jpg)
20
Swap
● Contre performant pour un SGBD● Pas plus de 2 Go de swap● Paramètre swappiness
● 60 par défaut● Descendre à 5 ou 10
![Page 21: Performances PostgreSQL au niveau du système · Virtualisation Non recommandé Mutualisation des disques Masque les ressources Overcommit Gestion des vCPU multiples ... 4 par défaut,](https://reader031.vdocuments.net/reader031/viewer/2022022610/5b95bab209d3f29b178ca978/html5/thumbnails/21.jpg)
21
Overcommit
● Pas d'overcommit sur PostGreSQL● vm.overcommit_memory
● =2 pour le désactiver● vm.overcommit_ratio
● Spécifie l'espace mémoire allouable:● «overcommit_ratio» pourcent de la RAM + SWAP● Pour pouvoir allouer uniquement la RAM disponible:● overcommit_ratio = (RAM – SWAP) * 100 / RAM
![Page 22: Performances PostgreSQL au niveau du système · Virtualisation Non recommandé Mutualisation des disques Masque les ressources Overcommit Gestion des vCPU multiples ... 4 par défaut,](https://reader031.vdocuments.net/reader031/viewer/2022022610/5b95bab209d3f29b178ca978/html5/thumbnails/22.jpg)
22
Afinité processeur / mémoire
● Architecture NUMA (multi-sockets)● Contre productif avec PostgreSQL● vm.zone_reclaim_mode = 0 pour le désactiver
![Page 23: Performances PostgreSQL au niveau du système · Virtualisation Non recommandé Mutualisation des disques Masque les ressources Overcommit Gestion des vCPU multiples ... 4 par défaut,](https://reader031.vdocuments.net/reader031/viewer/2022022610/5b95bab209d3f29b178ca978/html5/thumbnails/23.jpg)
23
Système de fichier
● Windows● NTFS
● Linux● ext3, ext4, xfs ...
● Solaris● ZFS
![Page 24: Performances PostgreSQL au niveau du système · Virtualisation Non recommandé Mutualisation des disques Masque les ressources Overcommit Gestion des vCPU multiples ... 4 par défaut,](https://reader031.vdocuments.net/reader031/viewer/2022022610/5b95bab209d3f29b178ca978/html5/thumbnails/24.jpg)
24
Configuration FS
● noatime● nodiratime● dir_index
![Page 25: Performances PostgreSQL au niveau du système · Virtualisation Non recommandé Mutualisation des disques Masque les ressources Overcommit Gestion des vCPU multiples ... 4 par défaut,](https://reader031.vdocuments.net/reader031/viewer/2022022610/5b95bab209d3f29b178ca978/html5/thumbnails/25.jpg)
25
Configuration PostgreSQL
● Mémoire● Planificateur● WAL● Statistiques● Fichiers
![Page 26: Performances PostgreSQL au niveau du système · Virtualisation Non recommandé Mutualisation des disques Masque les ressources Overcommit Gestion des vCPU multiples ... 4 par défaut,](https://reader031.vdocuments.net/reader031/viewer/2022022610/5b95bab209d3f29b178ca978/html5/thumbnails/26.jpg)
26
Configuration - mémoire
● shared_buffers● wal_buffers● work_mem / maintenance_work_mem
![Page 27: Performances PostgreSQL au niveau du système · Virtualisation Non recommandé Mutualisation des disques Masque les ressources Overcommit Gestion des vCPU multiples ... 4 par défaut,](https://reader031.vdocuments.net/reader031/viewer/2022022610/5b95bab209d3f29b178ca978/html5/thumbnails/27.jpg)
27
Configuration - planificateur
● random_page_cost● 4 par défaut, bonne valeur pour disques lents
● RAID 5● Disques SATA
● 2,5 à 3 pour du RAID 10● 1 pour du SSD ou RAM >= taille base
● effective_cache_size
![Page 28: Performances PostgreSQL au niveau du système · Virtualisation Non recommandé Mutualisation des disques Masque les ressources Overcommit Gestion des vCPU multiples ... 4 par défaut,](https://reader031.vdocuments.net/reader031/viewer/2022022610/5b95bab209d3f29b178ca978/html5/thumbnails/28.jpg)
28
Configuration - WAL
● fsync: assure la sécurité● checkpoint_segments● checkpoint_timeout● checkpoint_completion_target
![Page 29: Performances PostgreSQL au niveau du système · Virtualisation Non recommandé Mutualisation des disques Masque les ressources Overcommit Gestion des vCPU multiples ... 4 par défaut,](https://reader031.vdocuments.net/reader031/viewer/2022022610/5b95bab209d3f29b178ca978/html5/thumbnails/29.jpg)
29
Configuration – statistiques
● track_activities● track_count● autovacuum
![Page 30: Performances PostgreSQL au niveau du système · Virtualisation Non recommandé Mutualisation des disques Masque les ressources Overcommit Gestion des vCPU multiples ... 4 par défaut,](https://reader031.vdocuments.net/reader031/viewer/2022022610/5b95bab209d3f29b178ca978/html5/thumbnails/30.jpg)
30
Configuration – fichiers WAL
● Placer les journaux sur un autre disque● Option -X de l'outil initdb● Lien symbolique
![Page 31: Performances PostgreSQL au niveau du système · Virtualisation Non recommandé Mutualisation des disques Masque les ressources Overcommit Gestion des vCPU multiples ... 4 par défaut,](https://reader031.vdocuments.net/reader031/viewer/2022022610/5b95bab209d3f29b178ca978/html5/thumbnails/31.jpg)
31
Configuration - fichiers
● Séparer les objets suivant leur utilisation● Tablespaces
● Séparer tables et index● Séparer archives et données vivantes● Paramétrage au tablespace
● ALTER TABLESPACE nom SET (random_page_cost TO X);
![Page 32: Performances PostgreSQL au niveau du système · Virtualisation Non recommandé Mutualisation des disques Masque les ressources Overcommit Gestion des vCPU multiples ... 4 par défaut,](https://reader031.vdocuments.net/reader031/viewer/2022022610/5b95bab209d3f29b178ca978/html5/thumbnails/32.jpg)
32
Questions ?
● N'hésitez pas, c'est le moment