Re: NUMA packaging and patch
От | Andres Freund |
---|---|
Тема | Re: NUMA packaging and patch |
Дата | |
Msg-id | 20140701105752.GC26930@awork2.anarazel.de обсуждение исходный текст |
Ответ на | Re: NUMA packaging and patch (Christoph Berg <cb@df7cb.de>) |
Ответы |
Re: NUMA packaging and patch
|
Список | pgsql-hackers |
On 2014-07-01 11:01:04 +0200, Christoph Berg wrote: > 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. I've tested this a while ago, and it's rather painful if you have a OLAP workload with lots of backend private memory. > The numactl manpage even has this example: > > numactl --interleave=all bigdatabase arguments Run big > database 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. I wonder if we shouldn't backpatch such a notice. Greetings, Andres Freund -- Andres Freund http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training & Services
В списке pgsql-hackers по дате отправления: