[gull] Parallelize Postgresql request

Marc SCHAEFER schaefer at alphanet.ch
Thu Oct 10 13:46:52 CEST 2024


Hello,

On Thu, Oct 10, 2024 at 08:39:03AM +0200, felix via gull wrote:
> Les machines sont différentes, mais cela n'explique pas:
>    - Window 32G 12 coeurs 3GHz
>    - Linux  16G 8 coeurs. 3.2GHz
> Sous linux la swap n'est pas accédée.

Attention à ce que Linux soit natif, pas comme VM.  La différence de
performance peut être d'un facteur 3.

La différence de RAM pourrait aussi expliquer certaines choses, mais
peut-être pas ça:

> En donc en suivant les acticités des processeurs, sous window on voit 
> clairement les 12 cpu qui s'agittent durant les 8 secondes, alors que 
> sous linux, on voit 1 processeur au top durant 4 secondes, puis un autre 
> ``prend le relais'', ainsi de suite, à aucun moment je ne voit plus d'un 
> coeur au top.

Effectivement, c'est certainement le souci.  Sauf si c'est I/O bound
(voir dès la 2e ligne de `vmstat 5`).

> Je n'ai pas bien compris non plus les calculs de coûts:

Le seul que j'avais touché dans le passé c'était celui qui décide si tu
utilises un index scan ou un séquential scan, de mémoire.

D'après la FAQ [1], le paramètre max_parallel_workers_per_gather devrait
être configuré raisonnablement par défaut. A voir tu peux debugger
et forcer avec https://postgresqlco.nf/doc/en/param/debug_parallel_query/

> Il faut dire que ``measured on an arbitrary scale'' et ``same scale as above''
> ne sont pas des information très explicites.

Tu devrais poser la question sur la ml postgresql. J'avais eu une fois
un problème bizarre et ils avaient été très réactifs.

[1] https://wiki.postgresql.org/wiki/FAQ#How_does_PostgreSQL_use_CPU_resources.3F
    https://postgresqlco.nf/doc/en/param/max_parallel_workers_per_gather/


More information about the gull mailing list