Re: Estimating HugePages Requirements?

From: Michael Paquier <michael(at)paquier(dot)xyz>
To: "Bossart, Nathan" <bossartn(at)amazon(dot)com>
Cc: Justin Pryzby <pryzby(at)telsasoft(dot)com>, Andres Freund <andres(at)anarazel(dot)de>, Magnus Hagander <magnus(at)hagander(dot)net>, Mark Dilger <mark(dot)dilger(at)enterprisedb(dot)com>, Don Seiler <don(at)seiler(dot)us>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Estimating HugePages Requirements?
Date: 2021-09-02 07:50:52
Message-ID: YTCCXOEdjbN9Sl+5@paquier.xyz
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin pgsql-hackers

On Wed, Sep 01, 2021 at 06:28:21PM +0000, Bossart, Nathan wrote:
> On 8/31/21, 11:54 PM, "Michael Paquier" <michael(at)paquier(dot)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.

Thanks. Anyway, we don't really need huge_pages_required on Windows,
do we? The following docs of Windows tell what do to when using large
pages:
https://docs.microsoft.com/en-us/windows/win32/memory/large-page-support

The backend code does that as in PGSharedMemoryCreate(), now that I
look at it. And there is no way to change the minimum large page size
there as far as I can see because that's decided by the processor, no?
There is a case for shared_memory_size on Windows to be able to adjust
the sizing of the memory of the host, though.

>> +#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.

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.
--
Michael

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Bossart, Nathan 2021-09-02 16:46:56 Re: Estimating HugePages Requirements?
Previous Message Guillaume Lelarge 2021-09-02 07:33:20 Re: vacuumlo

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Smith 2021-09-02 07:53:59 Re: Column Filtering in Logical Replication
Previous Message Michael Paquier 2021-09-02 07:28:29 Re: pg_receivewal starting position