Re: NUMA settings
От | Marc Rechté |
---|---|
Тема | Re: NUMA settings |
Дата | |
Msg-id | fd8fb5bd-eac6-7491-f1e8-3761387d9d03@rechte.fr обсуждение исходный текст |
Ответ на | Re: NUMA settings (Andres Freund <andres@anarazel.de>) |
Ответы |
Re: NUMA settings
|
Список | pgsql-performance |
> 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)
В списке pgsql-performance по дате отправления: