Re: NUMA packaging and patch
От | Christoph Berg |
---|---|
Тема | Re: NUMA packaging and patch |
Дата | |
Msg-id | 20140701090104.GA15590@msg.df7cb.de обсуждение исходный текст |
Ответ на | NUMA packaging and patch (Kevin Grittner <kgrittn@ymail.com>) |
Ответы |
Re: NUMA packaging and patch
|
Список | pgsql-hackers |
Re: Kevin Grittner 2014-06-09 <1402267501.41111.YahooMailNeo@web122304.mail.ne1.yahoo.com> > @@ -536,6 +539,24 @@ PGSharedMemoryCreate(Size size, bool makePrivate, int port, > */ > } > > +#ifdef USE_LIBNUMA > + /* > + * If this is not a private segment and we are using libnuma, make the > + * large memory segment interleaved. > + */ > + if (!makePrivate && numa_available()) > + { > + void *start; > + > + if (AnonymousShmem == NULL) > + start = memAddress; > + else > + start = AnonymousShmem; > + > + numa_interleave_memory(start, size, numa_all_nodes_ptr); > + } > +#endif How much difference would it make if numactl --interleave=all was used instead of using numa_interleave_memory() on the shared memory segments? I guess that would make backend-local memory also interleaved, but it would avoid having a dependency on libnuma in the packages. The numactl manpage even has this example: numactl --interleave=all bigdatabase arguments Run bigdatabase with its memory interleaved on all CPUs. It is probably better to have native support in the postmaster, though this could be mentioned as an alternative in the documentation. Christoph -- cb@df7cb.de | http://www.df7cb.de/
В списке pgsql-hackers по дате отправления: