2

We have a 8 core ESXi. We have a few virtual servers on it, one of which is our database (virtual) server. We have 2 cores provisioned for that db server.

I have set:

set max_parallel_workers_per_gather to 2

And max_worker_processes was already at 8.

I followed this link to setup a loadavg foreign data table: https://aaronparecki.com/2015/02/19/8/monitoring-cpu-memory-usage-from-postgres

So I can do this: SELECT * FROM loadavg;

I read these links, and that's about what I know on this:

http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages

Understanding load average vs. cpu usage

How do I confirm that my queries are benefiting from the max_parallel_workers_per_gather setting of 2 (instead of 0)?

Will the max_parallel_workers_per_gather setting affect what I see for my load averages (in the loadavg table I setup)?

I'm seeing averages near 4 and scheduled is sometimes 4/190. Seems alarmingly high given the links I have read above.

Bonus if you provide background that goes beyond my question. Thanks!

It is thin provisioned if that matters.

mountainclimber11
  • 1,339
  • 1
  • 28
  • 51
  • Check the execution plan –  Sep 29 '17 at 22:08
  • @a_horse_with_no_name - I agree that is a good first step, but there is a gauntlet of things that could prevent parallelism, so verifying utilization is quite useful: https://www.postgresql.org/docs/9.6/static/when-can-parallel-query-be-used.html – mountainclimber11 Oct 02 '17 at 13:56
  • this really doesn't answer the question, but I got good feedback others may want to use via the postgres email list: http://www.postgresql-archive.org/How-does-max-parallel-workers-per-gather-change-load-averages-td5986496.html – mountainclimber11 Oct 04 '17 at 13:36

0 Answers0