Re: Adding basic NUMA awareness - Preliminary feedback and outline for an extensible approach
От | Tomas Vondra |
---|---|
Тема | Re: Adding basic NUMA awareness - Preliminary feedback and outline for an extensible approach |
Дата | |
Msg-id | 2616b89d-3cd0-4a38-915d-2741da81e0a1@vondra.me обсуждение исходный текст |
Ответ на | Re: Adding basic NUMA awareness - Preliminary feedback and outline for an extensible approach (Cédric Villemain <cedric.villemain@data-bene.io>) |
Список | pgsql-hackers |
On 7/7/25 16:51, Cédric Villemain wrote: >>> * Others might use it to integrate PostgreSQL's own resources (e.g., >>> "areas" of shared buffers) into policies. >>> >>> Hope this perspective is helpful. >> >> Can you explain how you want to manage this by an extension defined at >> the SQL level, when most of this stuff has to be done when setting up >> shared memory, which is waaaay before we have any access to catalogs? > > I should have said module instead, I didn't follow carefully but at some > point there were discussion about shared buffers resized "on-line". > Anyway, it was just to give some few examples, maybe this one is to be > considered later (I'm focused on cgroup/psi, and precisely reassigning > PIDs as needed). > I don't know. I have a hard time imagining what exactly would the policies / profiles do exactly to respond to changes in the system utilization. And why should that interfere with this patch ... The main thing patch series aims to implement is partitioning different pieces of shared memory (buffers, freelists, ...) to better work for NUMA. I don't think there's that many ways to do this, and I doubt it makes sense to make this easily customizable from external modules of any kind. I can imagine providing some API allowing to isolate the instance on selected NUMA nodes, but that's about it. Yes, there's some relation to the online resizing of shared buffers, in which case we need to "refresh" some of the information. But AFAICS it's not very extensive (on top of what already needs to happen after the resize), and it'd happen within the boundaries of the partitioning scheme. There's not that much flexibility. The last bit (pinning backends to a NUMA node) is experimental, and mostly intended for easier evaluation of the earlier parts (e.g. to limit the noise when processes get moved to a CPU from a different NUMA node, and so on). regards -- Tomas Vondra
В списке pgsql-hackers по дате отправления: