Estimating total amount of shared memory required by postmaster

From: Alexey Klyukin <alexk(at)commandprompt(dot)com>
To: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Estimating total amount of shared memory required by postmaster
Date: 2011-06-02 18:58:09
Message-ID: 3D49C787-D047-4C95-8CC3-84307EC88A04@commandprompt.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hello,

We've recently come across the task of estimating the size of shared memory
required for PostgreSQL to start. This comes from the problem of validating
postgresql.conf files
(http://archives.postgresql.org/pgsql-hackers/2011-03/msg01831.php), i.e.
checking that the server will be able to start with new configuration options
without actually performing the restart. Currently, I see a couple of ways
to get the estimate:

- Use the code from ipci.c to get the total size of the shared memory segment
that Postmaster would be allocating with the given configuration options
(shared_buffers, etc.). This would require getting the actual amount of
available shared memory somehow, which is platform dependent and might not
be very reliable. The other downside is that the code would need to be
updated if the original estimates in ipci.c changes.

- Try to actually allocate the shared memory in a way postmaster does this
nowadays, if the process fails - analyze the error code to check whether the
failure is due to the shmmax or shmmall limits being too low. This would
need to be run as a separate process (not postmaster's child) to avoid
messing with the postmaster's own shared memory, which means that this would
be hard to implement as a user-callable stored function.

I'm also looking for other ideas. Any suggestions?

Thank you,
Alexey

--
Command Prompt, Inc. http://www.CommandPrompt.com
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Jeff Davis 2011-06-02 19:02:01 Re: storing TZ along timestamps
Previous Message Tom Lane 2011-06-02 18:47:08 pgsql: Disallow SELECT FOR UPDATE/SHARE on sequences.