Re: Estimating HugePages Requirements?

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: Robert Haas <robertmhaas@gmail.com>
Cc: "Bossart, Nathan" <bossartn@amazon.com>, Fujii Masao <masao.fujii@oss.nttdata.com>, 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-14T00:08:47Z
Lists: pgsql-hackers
On Mon, Sep 13, 2021 at 04:20:00PM -0400, Robert Haas wrote:
> On Mon, Sep 13, 2021 at 2:49 PM Bossart, Nathan <bossartn@amazon.com> wrote:
>> Yeah, I agree.  What about
>> huge_pages_needed_for_shared_memory_size or
>> huge_pages_needed_for_main_shared_memory?  I'm still not stoked about
>> using "required" or "needed" in the name, as it sounds like huge pages
>> must be allocated for the server to run, which is only true if
>> huge_pages=on.  I haven't thought of a better word to use, though.
> 
> I prefer the first of those to the second. I don't find it
> particularly better or worse than my previous suggestion of
> shared_memory_size_in_huge_pages.

I am not particularly fond of the use "needed" in this context, so I'd
be fine with your suggestion of "shared_memory_size_in_huge_pages.
Some other ideas I could think of:
- shared_memory_size_as_huge_pages
- huge_pages_for_shared_memory_size

Having shared_memory_size in the GUC name is kind of appealing though
in terms of grepping, and one gets the relationship with
shared_memory_size immediately.  If the consensus is
huge_pages_needed_for_shared_memory_size, I won't fight it, but IMO
that's too long.
--
Michael

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.