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 03/07/2012 16:53:56

devIdent
Membre

pgbench-performances de postgres8.4

Bonjour,

En exécutant un test avec pgbench, j'obtiens le meilleur tps (transactions par seconde) avec 4 clients.
Quel est donc le lien entre le nombre de connexions et les performances de postgres?
J'ai cherché du côté des paramètres du fichier postgresql.conf en me disant que c'est lié à la quantité de RAM disponible mais visiblement ce n'est pas le cas!

Hors ligne

#2 03/07/2012 17:14:09

kenrio
Membre

Re : pgbench-performances de postgres8.4

ça dépend aussi du nombre de threads en parallèle.

En fait y a tellement de chose à dire que je ne sais pas par où commencer ^^

Dernière modification par kenrio (03/07/2012 17:16:03)

Hors ligne

#3 03/07/2012 17:26:53

gleu
Administrateur

Re : pgbench-performances de postgres8.4

Ça dépend du test, de la machine, de la config de PostgreSQL, etc. Mais bon, il est assez évident que le nombre de transactions par seconde sera plus important si le nombre de clients est plus élevé... jusqu'à un certain nombre de clients évidemment.


Guillaume.

Hors ligne

#4 03/07/2012 18:00:19

devIdent
Membre

Re : pgbench-performances de postgres8.4

Je fais des test d'insertions sur un PC de 4GO de RAM et 7200RPM et j'ai laissé la configuration par défaut de postgres.
Je comprends que le tps soit proportionnel au nombre de clients mais pas pourquoi jusqu'à un certain nombre de clients limite.


Kenrio vous dites: ça dépend aussi du nombre de threads en parallèle.
Je pense que c'est l'objet même de ma question. Pourquoi le meilleur tps à 4 processus forcément.

Hors ligne

#5 03/07/2012 18:12:40

gleu
Administrateur

Re : pgbench-performances de postgres8.4

Je comprends que le tps soit proportionnel au nombre de clients mais pas pourquoi jusqu'à un certain nombre de clients limite.

Tout simplement parce que les ressources de votre machine ne sont pas illimités, donc ses performances non plus. L'un des premiers goulets d'étranglement sera le disque. Sauf si la base tient en RAM, auquel cas le goulet le plus sûr sera le nombre de CPU et leur vitesse.

Pourquoi le meilleur tps à 4 processus forcément.

Il faudrait donner beaucoup plus d'infos que ce que vous faites pour pouvoir répondre correctement. J'aurais tendance à dire que ça dépend fortement du nombre de CPU.


Guillaume.

Hors ligne

#6 03/07/2012 18:13:26

kenrio
Membre

Re : pgbench-performances de postgres8.4

Pg_bench vous permet de gérer le nombre de thread et de clients, ainsi que le nombre de transaction par clients.
Donc quand vous dites j'ai un meilleur tps pour 4 clients ok mais combien de transactions par client et avec combien de thread ?

Et sans oublier la taille de la database que vous avez généré.

Hors ligne

#7 04/07/2012 10:17:19

devIdent
Membre

Re : pgbench-performances de postgres8.4

J'ai oublié de dire que le PC contient 4 CPU.
Mes tests je les fait avec pgbench-tools. Le but étant de comparer les peformances d'un insert multi-ligne et un insert simple ainsi qu'un copy.
Pour cela je crée donc mes propres scripts.
Dans le cas des insert, j'ai le meilleur tps avec 4 clients. Dans le cas du copy, j'ai le meilleur tps avec 6 clients.
Je sais que c'est fortement lié à la machine. Ce n'est donc pas lié à postgres ou sa configuration?   

Sur postgres 8.4, on ne peut spécifier le nombre de threads, cette fonctionnalité est disponible à partir de la 9.0
Je ne savais pas qu'on pouvait spécifier le nombre de transaction par client. je suppose que dans mon cas c'est 1 transaction par client.

Merci pour vos réponses.

Hors ligne

#8 04/07/2012 21:26:29

gleu
Administrateur

Re : pgbench-performances de postgres8.4

Le but étant de comparer les peformances d'un insert multi-ligne et un insert simple ainsi qu'un copy.

Oh, le résultat est très clair. Le COPY l'emporte largement. C'est pourquoi c'est l'instruction utilisée pour la restauration des sauvegardes.

Je sais que c'est fortement lié à la machine. Ce n'est donc pas lié à postgres ou sa configuration?

C'est lié à tout ça. Quand on fait un audit chez un client, on inspecte tout : le matériel, le système d'exploitation, la configuration de PostgreSQL, la façon dont les fichiers sont répartis, la façon dont le schéma est créé, les requêtes et le comportement de l'application. Tout élément de cette chaîne peut causer des problèmes et peut aider à améliorer les performances.


Guillaume.

Hors ligne

#9 05/07/2012 10:51:55

kenrio
Membre

Re : pgbench-performances de postgres8.4

pourquoi rester en 8.4 d'ailleurs ?

Hors ligne

#10 16/07/2012 16:29:10

devIdent
Membre

Re : pgbench-performances de postgres8.4

Y a pas de raisons qui font que je reste sur la 8.4. mais en voyant les améliorations apportées à la 9.0, je me suis dit que celles-ci ne touchent pas forcément aux performances de postgres auxquelles je m'intéresse!

Hors ligne

#11 24/10/2013 10:37:22

isa58632
Membre

Re : pgbench-performances de postgres8.4

N'y a-t-il pas un lien entre le nombre de CPU et le nombre de clients correspondant à la meilleure performance?

Dernière modification par isa58632 (07/04/2014 16:37:38)

Hors ligne

#12 24/10/2013 23:54:43

gleu
Administrateur

Re : pgbench-performances de postgres8.4

Un coeur de CPU peut gérer facilement un à cinq clients, parfois plus.


Guillaume.

Hors ligne

Pied de page des forums