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-01T18:28:21Z
Lists: pgsql-hackers

Attachments

On 8/31/21, 11:54 PM, "Michael Paquier" <michael@paquier.xyz> wrote:
> Hmm.  I am not sure about the addition of huge_pages_required, knowing
> that we would have shared_memory_size.  I'd rather let the calculation
> part to the user with a scan of /proc/meminfo.

I included this based on some feedback from Andres upthread [0].  I
went ahead and split the patch set into 3 pieces in case we end up
leaving it out.

> +#elif defined(WIN32)
> +   hp_size = GetLargePageMinimum();
> +#endif
> +
> +#if defined(MAP_HUGETLB) || defined(WIN32)
> +   hp_required = (size_b / hp_size) + 1;
> As of [1], there is the following description:
> "If the processor does not support large pages, the return value is
> zero."
> So there is a problem here.

I've fixed this in v4.

Nathan

[0] https://postgr.es/m/20210827193813.oqo5lamvyzahs35o%40alap3.anarazel.de

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.