lowleveldesign / process-governor

This application allows you to put various limits on Windows processes.
MIT License
627 stars 62 forks source link

NUMA AFFINITY #10

Closed lowspecchaos closed 4 years ago

lowspecchaos commented 4 years ago

Please may someone add in working numa affinity? with a way of allocating memory from the node/numanode i select. Very bad performance on dual socket. (PS i'm new to GitHub) Thank for for taking the time to look at my post to you.

lowleveldesign commented 4 years ago

I added support for NUMA node selection. Unfortunately, I don't have access to a physical NUMA machine to test it, but it did work on my Hyper-V VM. The code is in the branch NUMA-support. I am not sure if you can compile it. If not, I'm attaching binaries. The new option is -n or --node, and when it is specified, the CPU affinity is relative to the NUMA node. For example, on a machine with 2 NUMA nodes, each node having 2 CPUs, the command: procgov --node 1 --cpu 0x1 test.exe will result in test.exe being run on the first CPU of the NUMA node 1. I haven't found a way to enforce memory allocations to a given NUMA node but, form what I read, that should be the default behavior when the preferred node is set. Please give it a try and let me know if the new version works for you.

[file deleted]

lowleveldesign commented 4 years ago

@lowspecchaos, did you have a chance to verify if it works?

lowleveldesign commented 4 years ago

Please try the latest official release (v2.4). I found one bug in the affinity settings when no NUMA node was set. I'm closing this ticket. If you find any issues, feel free to reopen it.