Re: Estimating HugePages Requirements?
Michael Paquier <michael@paquier.xyz>
From: Michael Paquier <michael@paquier.xyz>
To: "Bossart, Nathan" <bossartn@amazon.com>
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-03T01:45:33Z
Lists: pgsql-hackers
On Thu, Sep 02, 2021 at 04:46:56PM +0000, Bossart, Nathan wrote: > Yeah, huge_pages_required might not serve much purpose for Windows. > We could always set it to -1 for Windows if it seems like it'll do > more harm than good. I'd be fine with this setup on environments where there is no need for it. >> At the end it would be nice to not finish with two GUCs. Both depend >> on the reordering of the actions done by the postmaster, so I'd be >> curious to hear the thoughts of others on this particular point. > > Of course. It'd be great to hear others' thoughts on this stuff. Just to be clear here, the ordering of HEAD is that for the postmaster: - Load configuration. - Handle -C config_param. - checkDataDir(), to check permissions of the data dir, etc. - checkControlFile(), to see if the control file exists. - Switch to data directory as work dir. - Lock file creation. - Initial read of the control file (where the GUC data_checksums is set). - Register apply launcher - shared_preload_libraries With 0002, we have that: - Load configuration. - checkDataDir(), to check permissions of the data dir, etc. - checkControlFile(), to see if the control file exists. - Switch to data directory as work dir. - Register apply launcher - shared_preload_libraries - Calculate the shmem GUCs (new step) - Handle -C config_param. - Lock file creation. - Initial read of the control file (where the GUC data_checksums is set). One thing that would be incorrect upon more review is that we'd still have data_checksums wrong with -C, meaning that the initial read of the control file should be moved further up, and getting the control file checks done before registering workers would be better. Keeping the lock file at the end would be fine AFAIK, but should we worry about the interactions with _PG_init() here? 0001, that refactors the calculation of the shmem size into a different routine, is fine as-is, so I'd like to move on and apply it. -- Michael
Commits
-
Silence extra logging when using "postgres -C" on runtime-computed GUCs
- 8bbf8461a3a2 15.0 landed
-
doc: Improve postgres command for shared_memory_size_in_huge_pages
- bbd4951b73ec 15.0 landed
-
Introduce GUC shared_memory_size_in_huge_pages
- 43c1c4f65eab 15.0 landed
-
Support "postgres -C" with runtime-computed GUCs
- 0c39c292077e 15.0 landed
-
Make shared_memory_size a preset option
- 3b231596ccfc 15.0 landed
-
Introduce GUC shared_memory_size
- bd1788051b02 15.0 landed
-
Move the shared memory size calculation to its own function
- 0bd305ee1d42 15.0 landed
-
Add new GUC, max_worker_processes, limiting number of bgworkers.
- 6bc8ef0b7f1f 9.4.0 cited