Re: NUMA settings

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On 2020-04-29 10:50:54 +0200, Laurenz Albe wrote:
On Wed, 2020-04-29 at 08:54 +0200, Marc Rechté wrote:
I am trying to figure out the recommended settings for a PG dedicated
machine regarding NUMA.

I assume that the shared buffers are using Huge Phages only. Please
correct if I am wrong:

1) postgres is started with numactl --interleave=all, in order to spread
memory pages evenly on nodes.
2) wm.swappiness is left to the default 60 value, because Huge Pages
never swap, and we wish the idle backend to be swapped out if necessary.
3) vm.zone_reclaim_mode = 0. I am not sure it is the right choice.
4) kernel.numa_balancing = 1. Only if it is confirmed that it will not
affect postgres, because started with the interleave policy.

I am not the top expert on this, but as far as I can tell:

- Disabling NUMA is good if you want to run a single database cluster
   on the machine that should use all resources.

   If you want to run several clusters that share the resources, leaving
   NUMA support enabled might be the better thing to do.

- If you can, disable NUMA in the BIOS, on as low a level as possible.

I am doubtful that that's generally going to be beneficial. I think the
strategy of starting postgres with interleave is probably a better
answer.

- Andres



Thanks for answers. Further readings make me think that we should *not* start postgres with numactl --interleave=all: this may have counter productive effect on backends anon memory (heap, stack). IMHO, what is important is to use Huge Pages for shared buffers: they are allocated (reserved) by the kernel at boot time and spread evenly on all nodes. On top of that they never swap.

My (temp) conclusions are following:
	vm.zone_reclaim_mode = 0
	kernel.numa_balancing = 0 (still not sure with that choice)
	wm.swappiness = 60 (default)
	start postgres as usual (no numactl)





[Postgresql General]     [Postgresql PHP]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Yosemite]

  Powered by Linux