Re: Estimating HugePages Requirements?

Nathan Bossart <nathandbossart@gmail.com>

From: Nathan Bossart <nathandbossart@gmail.com>
To: Michael Paquier <michael@paquier.xyz>
Cc: Magnus Hagander <magnus@hagander.net>, "Bossart, Nathan" <bossartn@amazon.com>, Fujii Masao <masao.fujii@oss.nttdata.com>, Justin Pryzby <pryzby@telsasoft.com>, Andres Freund <andres@anarazel.de>, Mark Dilger <mark.dilger@enterprisedb.com>, Don Seiler <don@seiler.us>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2022-05-10T16:12:49Z
Lists: pgsql-hackers
On Mon, May 09, 2022 at 03:53:24PM +0900, Michael Paquier wrote:
> I have looked at the patch posted at [1], and I don't quite understand
> why you need the extra dance with log_min_messages.  Why don't you
> just set the GUC at the end of the code path in PostmasterMain() where
> we print non-runtime-computed parameters?

The log_min_messages dance avoids extra output when inspecting
non-runtime-computed GUCs, like this:

	~/pgdata$ postgres -D . -C log_min_messages -c log_min_messages=debug5
	debug5
	2022-05-10 09:06:04.728 PDT [3715607] DEBUG:  shmem_exit(0): 0 before_shmem_exit callbacks to make
	2022-05-10 09:06:04.728 PDT [3715607] DEBUG:  shmem_exit(0): 0 on_shmem_exit callbacks to make
	2022-05-10 09:06:04.728 PDT [3715607] DEBUG:  proc_exit(0): 0 callbacks to make
	2022-05-10 09:06:04.728 PDT [3715607] DEBUG:  exit(0)

AFAICT you need to set log_min_messages to at least DEBUG3 to see extra
output for the non-runtime-computed GUCs, so it might not be worth the
added complexity.

> I am not really worrying
> about users deciding to set log_min_messages to PANIC in
> postgresql.conf when it comes to postgres -C, TBH, as they'd miss the
> FATAL messages if the command is attempted on a server already
> starting.

I don't have a strong opinion on this one.

-- 
Nathan Bossart
Amazon Web Services: https://aws.amazon.com



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.