pg_cluu¶
pgCluu
est un outil de collecte de métriques de performances. Il génère un rapport HTML complet comprenant :
- Des informations sur le système ;
- Graphes de consommation des ressources CPU, RAM, I/O ;
- Informations sur le cluster, graphes…
Il est développé par Gilles Darold. L’outil est disponible sur github à l’adresse : https://github.com/darold/pgcluu
Pour voir un exemple de rapport généré par pgCluu, vous pouvez consulter la page d’exemple sur le site du projet.
Installation¶
pgCluu s’articule autour de deux outils : pgcluu_collectd
(collecte des métriques) et pgcluu
(génération du rapport).
Note
Pré-requis :
- Perl
- Paquet
sysstat
: permet d’obtenir des métriques système (CPU, disque, RAM, réseau…)
Pour contrôler que ce dernier paquet est fonctionnel, testez le bon fonctionnement de sar
et iostat
:
$ sar 1 5
Linux 5.15.0-57-generic (pegase) 11/01/2023 _x86_64_ (4 CPU)
15:50:13 CPU %user %nice %system %iowait %steal %idle
15:50:14 all 30,30 0,00 8,84 0,25 0,00 60,61
15:50:15 all 17,53 0,00 7,90 0,00 0,00 74,57
15:50:16 all 23,29 0,00 11,65 0,25 0,00 64,81
15:50:17 all 8,86 0,00 3,54 0,00 0,00 87,59
15:50:18 all 7,46 0,00 2,57 0,26 0,00 89,72
Moyenne : all 17,53 0,00 6,92 0,15 0,00 75,40
$ iostat 1 1
Linux 5.15.0-57-generic (pegase) 11/01/2023 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
30,05 0,22 8,48 0,18 0,00 61,06
Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd
dm-0 46,46 519,13 1251,96 1704,91 102697593 247667791 337273159
dm-1 8,12 228,23 183,46 119,11 45149494 36293628 23562364
dm-10 0,00 0,03 0,00 0,00 5302 0 0
dm-2 19,79 30,71 52,13 0,00 6075356 10313400 0
…
Il est possible d’installer pgcluu
à partir des dépôts PGDG avec la commande suivante (sans la dépendance Apache qui ne sert que pour des rapports réguliers !) :
ou
Pour installer la dernière version, si elle n’est pas présente dans les dépôts, il est possible de télécharger l’archive au format tar.gz présente sur le site https://github.com/darold/pgcluu/releases.
L’installation est alors classique :
À noter qu’il n’est pas nécessaire d’installer de paquets, les scripts pgcluu
et pgcluu_collectd
peuvent être utilisés directement depuis l’archive.
Collecte des métriques¶
Dans un premier temps il va falloir lancer pgcluu_collectd
qui va collecter les différentes métriques. Cet outil dispose de nombreuses options. Pour obtenir le détail : ./pgcluu_collectd --help
Nous allons présenter les options principales :
-D
,--daemonize
: Permet de lancer la capture en tant que daemon. L’exécution du processus se fait en arrière-plan ;-i
,--interval=NUM
: Intervalle en seconde entre chaque collecte (60 secondes par defaut) ;-M
,--max-size=SIZE
: Cette option permet de limiter le volume de données collectée. Il peut devenir important suivant la fréquence de collecte, le nombre de bases et la durée de la collecte. Par exemple 2GB ou 2000MB ;-k
,--kill
Stoppe la collecte.
Pour lancer la collecte, il faut spécifier le répertoire où seront stockées les mesures (le répertoire doit être créé au préalable).
Note
pgcluu
doit pouvoir se connecter à la base, le plus simple est de le lancer sous le compte postgres, sinon il est possible d’utiliser un fichier .pgpass
et spécifier les options connexion.
Voici un exemple de commande :
Pour arrêter la collecte :
Voir aussi cette page pour configurer le service pgcluu_collectd
.
Génération du rapport¶
Une fois les métriques collectée on peut lancer la génération du rapport avec pgcluu
. Là encore, l’outil dispose de nombreuses options. Pour obtenir le détail : ./pgcluu --help
Il est possible de spécifier le répertoire de destination avec l’option -o
. Voici un exemple de commande pour générer le rapport dans le répertoire /tmp/report/html/
(créé au préalable) :
Réaliser une capture ponctuelle¶
Il est possible de demander à pgCluu de se contenter de collecter ponctuellement toutes informations disponibles, sans tourner en arrière-plan ou chercher à mesurer l’activité. C’est particulièrement utile pour récupérer un récapitulatif de la configuration d’une instance et du serveur.
Pour cela, il suffit de lancer la commande suivante (avec un utilisateur qui peut se connecter à l’instance, par exemple postgres) :
Les données seront écrites dans le fichier suivant : /tmp/pgcluu_capture.tgz
Un rapport peut ensuite être généré à partir du contenu de ce fichier en suivant la méthode décrite précédemment.