Re: Draft for basic NUMA observability
От | Bertrand Drouvot |
---|---|
Тема | Re: Draft for basic NUMA observability |
Дата | |
Msg-id | Z8ckCRJ/axVWUMs2@ip-10-97-1-34.eu-west-3.compute.internal обсуждение исходный текст |
Ответ на | Re: Draft for basic NUMA observability (Jakub Wartak <jakub.wartak@enterprisedb.com>) |
Ответы |
Re: Draft for basic NUMA observability
|
Список | pgsql-hackers |
Hi, On Tue, Mar 04, 2025 at 11:48:31AM +0100, Jakub Wartak wrote: > Hi! > > On Thu, Feb 27, 2025 at 4:34 PM Bertrand Drouvot > <bertranddrouvot.pg@gmail.com> wrote: > > > I did some tests and it looks like it's giving correct results. I don't see -2 > > anymore and every backend reports correct distribution (with or without hp, > > with "small" or "large" shared buffer). > > Cool! Attached is v7 Thanks for the new version! > > === 2 > > > > + if (query_numa) > > + { > > + blk2page = (int) i * pages_per_blk; > > + j = 0; > > + do > > + { > > > > This check is done for every page. I wonder if it would not make sense > > to create a brand new function for pg_buffercache_numa and just let the > > current pg_buffercache_pages() as it is. That said it would be great to avoid > > code duplication as much a possible though, maybe using a shared > > populate_buffercache_entry() or such helper function? > > Well, I've made query_numa a parameter there simply to avoid that code > duplication in the first place, look at those TupleDescInitEntry()... Yeah, that's why I was mentioning to use a "shared" populate_buffercache_entry() or such function: to put the "duplicated" code in it and then use this shared function in pg_buffercache_pages() and in the new numa related one. > IMHO rarely anybody uses pg_buffercache, but we could add unlikely() I think unlikely() should be used for optimization based on code path likelihood, not based on how often users might use a feature. > > === 5 > > > > Could we also avoid some code duplication with pg_get_shmem_allocations()? > > Not sure I understand do you want to avoid code duplication > pg_get_shmem_allocations() vs pg_get_shmem_numa_allocations() or > pg_get_shmem_numa_allocations() vs pg_buffercache_pages(query_numa = > true) ? I meant to say avoid code duplication between pg_get_shmem_allocations() and pg_get_shmem_numa_allocations(). It might be possible to create a shared function for them too. That said, it looks like that the savings (if any), would not be that much, so maybe just forget about it. Regards, -- Bertrand Drouvot PostgreSQL Contributors Team RDS Open Source Databases Amazon Web Services: https://aws.amazon.com
В списке pgsql-hackers по дате отправления: