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-09-06T23:55:42Z
Lists: pgsql-hackers

Attachments

On 9/5/21, 9:26 PM, "Bossart, Nathan" <bossartn@amazon.com> wrote:
> On 9/5/21, 7:28 PM, "Michael Paquier" <michael@paquier.xyz> wrote:
>> Without concluding on 0002 yet, another thing that we could do is to
>> just add the GUCs.  These sound rather useful on their own (mixed
>> feelings about huge_pages_required but I can see why it is useful to
>> avoid the setup steps and the backend already grabs this information),
>> particularly when it comes to cloned setups that share a lot of
>> properties.
>
> I think this is a good starting point, but I'd like to follow up on
> making them visible without completely starting the server.  The main
> purpose for adding these GUCs is to be able to set up huge pages
> before server startup.  Disallowing "-C huge_pages_required" on a
> running server to enable this use-case seems like a modest tradeoff.
>
> Anyway, I'll restructure the remaining patches to add the GUCs first
> and then address the 0002 business separately.

Attached is a new patch set.  The first two patches just add the new
GUCs, and the third is an attempt at providing useful values for those
GUCs via -C.

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.