PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 13/05/2019 14:31:37

Mlan2
Membre

Lancement de commandes psql parallélisées.

Bonjour,

Pour des besoins de performances (durées de traitement) j'envisage de lancer en tâches de fond sur un environnement Linux, plusieurs commandes psql pouvant s'exécuter indépendamment les unes des autres.

Lors des essais que j'ai pu réaliser, les différents traitements sont bien parallélisés (les N processus s'exécutent simultanément). Chaque traitement exécute la même procédure stockée, mais avec des paramètres différents.
J'espérais un gain de temps en adoptant ce procédé, mais je n'ai pas obtenu le résultat escompté. Mon collègue DBA me fait remarquer qu'il n'y a un processus SGBD sollicité sur le serveur hébergeant PostgreSQL, à ma grand surprise. Je pensais qu'un processus distinct PostgreSQL aurait été associé aurait été associé à chaque processus exécutant psql.

Est ce un fonctionnement normal, ou bien je ne procède pas correctement pour obtenir le résultat souhaité.

Un éclairage sur le sujet sera le bien venu.

D'avance merci.

Hors ligne

#2 13/05/2019 19:44:56

dverite
Membre

Re : Lancement de commandes psql parallélisées.

Le modèle de PostgreSQL c'est qu'il y a un processus par connexion, donc si N instances psql sont en parallèle, il y a N processus côté serveur (sauf s'il y a un pooler de connexion qui dit le contraire).


Après ce que font ces processus c'est une autre affaire. S'il se trouve que des sessions en verrouillent d'autres, il peut y avoir N-1 processus qui attendent et un seul qui travaille. Il faut regarder dans le détail, via la vue pg_stat_activity par exemple.

Hors ligne

Pied de page des forums