if I "alter table allwise set (parallel_workers = 64);" then I can get 64
workers. I wonder if the code
to check the rel_parallel_workers do deal with the default algorithm not
allocating sufficient
parallel_workers.


On Mon, Jul 14, 2025 at 2:54 PM Tom Lane <t...@sss.pgh.pa.us> wrote:

> Greg Hennessy <greg.henne...@gmail.com> writes:
> >> Postgres has chosen to use only a small fraction of the CPU's I have on
> >> my machine. Given the query returns an answer in about 8 seconds, it
> may be
> >> that Postgresql has allocated the proper number of works. But if I
> wanted
> >> to try to tweak some config parameters to see if using more workers
> >> would give me an answer faster, I don't seem to see any obvious knobs
> >> to turn. Are there parameters that I can adjust to see if I can increase
> >> throughput? Would adjusting parallel_setup_cost or parallel_tuple_cost
> >> likely to be of help?
>
> See the bit about
>
>              * Select the number of workers based on the log of the size of
>              * the relation.  This probably needs to be a good deal more
>              * sophisticated, but we need something here for now.  Note
> that
>
> in compute_parallel_worker().  You can move things at the margins by
> changing min_parallel_table_scan_size, but that logarithmic behavior
> will constrain the number of workers pretty quickly.  You'd have to
> change that code to assign a whole bunch of workers to one scan.
>
> (No, I don't know why it's done like that.  There might be related
> discussion in our archives, but finding it could be difficult.)
>
>                         regards, tom lane
>

Reply via email to