Page 1 sur 1

Traqueur : pas d'événement d'attente mais activité "non CPU"

Posté : mer. 3 juil. 2019 17:42
par Phil
Merci à Vincent pour sa question :

"Bonjour, j'utilise le traqueur pour évaluer les attentes sur un transfert effectué via Oracle_FDW (foreign data wrapper) d'une base Oracle vers un cluster PostgreSQL.
J'obtiens ceci :

Code : Tout sélectionner

./traqueur.sh -p
traqueur 3.04.04 - https://pgphil.ovh - outil de diagnostic performance pour PostgreSQL 9.4 => 12
INFORMATION, pas d'options de connexions indiquees, utilisation de la base dediee detectee ...
INFORMATION, connecte a la base traqueur
INFORMATION, version de PostgreSQL detectee : 110004
INFORMATION, preparation de la collecte ...
INFORMATION, execution de la collecte et presentation des resultats ...

 busy_pc | distinct_exe |   db    | pid  | pg_user  |  client_ip   | application |                              query                               | wait_event_type | blockers | non_cpu_pc (avg) | mem (max sum) | swap (max sum)
---------+--------------+---------+------+----------+--------------+-------------+------------------------------------------------------------------+-----------------+----------+------------------+---------------+----------------
     100 | 1 / 50       | prodige | 7830 | usr_pgih | 10.194.14.75 | psql        | Insert into USR_PGIH.ACT_DIM_HRSS select * from orcl_USR_PGIH.AC |                 |          |               84 | 77 MB         | 0 bytes
(1 ligne)

 Charge CPU moyennne globale (hors traqueur)
---------------------------------------------
                                           6
(1 ligne)

 Temps_CPU_User_en_s | Temps_CPU_Systeme_en_s | Temps_CPU_Idle_en_s | Temps_IO_en_s
---------------------+------------------------+---------------------+---------------
                   1 |                      0 |                  14 |             0
(1 ligne)

Je n'ai pas d'événement d'attente et pourtant le traqueur dit que je fais surtout du "non CPU". Je pensais que lorsqu'il n'y avait pas d'événement d'attente, l'activité était sur le CPU."

Réponse :
Pas d'événement d'attente = activité CPU, ce n'était pas du tout vrai en 9.6. C'est de plus en plus vrai mais ce n'est toujours pas toujours nécessairement vrai en 11 même si PostgreSQL remonte de plus en plus d'événements d'attente au niveau de pg_stat_activity pour faciliter les diagnostics.
Avec l'option -p, le traqueur a toujours permis de faire la distinction entre de l'activité sur le CPU et "autre chose", que l'événement d'attente soit connu ou non.
En l'occurrence, dans cet exemple, PostgreSQL ne relève pas d'événement d'attente mais le temps n'est pas passé par le CPU : il peut être passé sur le réseau ou côté Oracle.
Tout de même, je ne sais pas pourquoi le type d'événement est nul et n'est pas "extension" par exemple. Il faudrait creuser puis poser la question sur la mailing list postgres.