Re: Calculating vm.nr_hugepages

From: Erik Wienhold <ewie(at)ewie(dot)name>
To: Troels Arvin <troels(at)arvin(dot)dk>, pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Re: Calculating vm.nr_hugepages
Date: 2023-08-30 14:41:16
Message-ID: 1985478005.5957.1693406476870@office.mailbox.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

> On 30/08/2023 15:12 CEST Troels Arvin <troels(at)arvin(dot)dk> wrote:
>
> I assume I need to find the same value as I get from running "postgres
> -C shared_memory_size_in_huge_pages". I call that my target value.
> Note: I cannot simply run "postgres -C ...", because I need my Ansible
> play to work against a server where Postgres is running.
>
> I've tried using the formula described at
> https://www.cybertec-postgresql.com/en/huge-pages-postgresql/, but it
> produces a different value than my target:
>
> Using a shared_buffers value of 21965570048, like in Cybertec
> Postgresql's example:
> "postgres ... -C 21965570048B" yields: 10719
> The formula from Cybertec Postgresql says: 10475

Probably because 21965570048B > 20GB. What does your command look like
exactly? Why do you use shared_buffers=21965570048B and not 20GB? The larger
value is quoted in the last section of the linked blog post for pre-15 Postgres
and is the shared memory size that Postgres wants to allocate but fails to do
with shared_buffers=20GB. The section also provides the formula for manually
calculating vm.nr_hugepages.

> I've also tried doing what ChatGPG suggested:
> Number of Huge Pages when shared_buffers is set to 1 GiB =
> shared_buffers / huge_page_size
>                     = 1073741824 bytes / 2097152 bytes
>                     = 512
> But that's also wrong compared to "postgres -C ..." (which said 542).

The formula from the blog post gives me 513 but it also includes some additional
shared memory for internal stuff. So 512 is correct when the shared memory size
already includes the overhead for internal stuff.

--
Erik

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Marc Millas 2023-08-30 15:12:49 event trigger clarification
Previous Message Don Seiler 2023-08-30 14:06:19 Re: Calculating vm.nr_hugepages