Re: Estimating HugePages Requirements?

Don Seiler <don@seiler.us>

From: Don Seiler <don@seiler.us>
To: P C <puravc@gmail.com>
Cc: Magnus Hagander <magnus@hagander.net>, Julien Rouhaud <rjuju123@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>, pgsql-admin <pgsql-admin@postgresql.org>
Date: 2021-06-10T03:55:08Z
Lists: pgsql-hackers
On Wed, Jun 9, 2021, 21:03 P C <puravc@gmail.com> wrote:

> I agree, its confusing for many and that confusion arises from the fact
> that you usually talk of shared_buffers in MB or GB whereas hugepages have
> to be configured in units of 2mb. But once they understand they realize its
> pretty simple.
>
> Don, we have experienced the same not just with postgres but also with
> oracle. I havent been able to get to the root of it, but what we usually do
> is, we add another 100-200 pages and that works for us. If the SGA or
> shared_buffers is high eg 96gb, then we add 250-500 pages. Those few
> hundred MBs  may be wasted (because the moment you configure hugepages, the
> operating system considers it as used and does not use it any more) but
> nowadays, servers have 64 or 128 gb RAM easily and wasting that 500mb to
> 1gb does not hurt really.
>

I don't have a problem with the math, just wanted to know if it was
possible to better estimate what the actual requirements would be at
deployment time. My fallback will probably be you did and just pad with an
extra 512MB by default.

Don.

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.