Re: Estimating HugePages Requirements?

Nathan Bossart <bossartn@amazon.com>

From: "Bossart, Nathan" <bossartn@amazon.com>
To: Michael Paquier <michael@paquier.xyz>
Cc: Justin Pryzby <pryzby@telsasoft.com>, Andres Freund <andres@anarazel.de>, Magnus Hagander <magnus@hagander.net>, Mark Dilger <mark.dilger@enterprisedb.com>, Don Seiler <don@seiler.us>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>
Date: 2021-08-31T05:37:52Z
Lists: pgsql-hackers

Attachments

On 8/30/21, 12:29 AM, "Michael Paquier" <michael@paquier.xyz> wrote:
> Attached is a WIP to show how the order of the operations could be
> changed, as that's easier to grasp.  Even if we don't do that, having
> the GUC and the refactoring of CalculateShmemSize() would still be
> useful, as one could just query an existing instance for an estimation
> of huge pages for a cloned one.
>
> The GUC shared_memory_size should have GUC_NOT_IN_SAMPLE and
> GUC_DISALLOW_IN_FILE, with some documentation, of course.  I added the
> flags to the GUC, not the docs.   The code setting up the GUC is not
> good either.  It would make sense to just have that in a small wrapper
> of ipci.c, perhaps.

I moved the GUC calculation to ipci.c, adjusted the docs, and added a
huge_pages_required GUC.  It's still a little rough around the edges,
and I haven't tested it on Windows, but this seems like the direction
the patch is headed.

Nathan

Commits

  1. Silence extra logging when using "postgres -C" on runtime-computed GUCs

  2. doc: Improve postgres command for shared_memory_size_in_huge_pages

  3. Introduce GUC shared_memory_size_in_huge_pages

  4. Support "postgres -C" with runtime-computed GUCs

  5. Make shared_memory_size a preset option

  6. Introduce GUC shared_memory_size

  7. Move the shared memory size calculation to its own function

  8. Add new GUC, max_worker_processes, limiting number of bgworkers.