Erlang on openstack VM with numa awareness
Wed Feb 19 13:50:53 CET 2020
This is what we did for experiments, we told erlang scheduler to bind with numa0 cores with +s 16 option and we got good result
After that we told erlang to bind numa1 cores and we got good result.
But when I tell erlang bind both NUMA cores then getting worst result, it seems erlang is messing with NUMA when it try to run on both NUMA.
We are running 18.x version.
Sent from my iPhone
> On Feb 17, 2020, at 8:28 AM, Ameretat Reith <ameretat.reith@REDACTED> wrote:
>> I did what you suggested, I’m getting best result on CPU pinning on single NUMA0 but in that case I’m wasting my CPU resources. When I trying to CPU pinning with dual NUMA then performance is 50% less, I have use all available option to correct CPU Topology, threads sibling on same core etc. but still erlang doesn’t like dual NUMA VM.
> I know libvirt can do CPU pinning so OpenStack can leverage that but never tested that. Until someone come with better idea, I suggest fire up Qemu instances with two NUMA nodes and two cpusets. Then find Qemu VCPu processes (pstree is your friend) and pin them to actual cores in according to NUMA nodes. If you still got poor performance, I suggest testing something non-Erlang based, like Redis.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the erlang-questions