<div dir="ltr"><div dir="ltr">Thanks,, the information is really helpful. I am have set below properties to flavor according to my numa policies. <div><br></div><div>    --property hw:numa_nodes=FLAVOR-NODES \<br>    --property hw:numa_cpus.N=FLAVOR-CORES \<br>    --property hw:numa_mem.N=FLAVOR-MEMORY<br></div><div><br></div><div>I am having below error in compute logs. Any advise.</div><div><br></div><div> libvirt.libvirtError: Unable to write to '/sys/fs/cgroup/cpuset/machine.slice/machine-qemu\x2d48\x2dinstance\x2d0000026b.scope/emulator/cpuset.cpus': Permission denied<br>2021-06-29 12:33:10.144 1310945 ERROR nova.virt.libvirt.guest Traceback (most recent call last):<br>2021-06-29 12:33:10.144 1310945 ERROR nova.virt.libvirt.guest   File "/usr/lib/python3/dist-packages/nova/virt/libvirt/guest.py", line 155, in launch<br>2021-06-29 12:33:10.144 1310945 ERROR nova.virt.libvirt.guest     return self._domain.createWithFlags(flags)<br>2021-06-29 12:33:10.144 1310945 ERROR nova.virt.libvirt.guest   File "/usr/lib/python3/dist-packages/eventlet/tpool.py", line 193, in doit<br>2021-06-29 12:33:10.144 1310945 ERROR nova.virt.libvirt.guest     result = proxy_call(self._autowrap, f, *args, **kwargs)<br>2021-06-29 12:33:10.144 1310945 ERROR nova.virt.libvirt.guest   File "/usr/lib/python3/dist-packages/eventlet/tpool.py", line 151, in proxy_call<br>2021-06-29 12:33:10.144 1310945 ERROR nova.virt.libvirt.guest     rv = execute(f, *args, **kwargs)<br>2021-06-29 12:33:10.144 1310945 ERROR nova.virt.libvirt.guest   File "/usr/lib/python3/dist-packages/eventlet/tpool.py", line 132, in execute<br>2021-06-29 12:33:10.144 1310945 ERROR nova.virt.libvirt.guest     six.reraise(c, e, tb)<br>2021-06-29 12:33:10.144 1310945 ERROR nova.virt.libvirt.guest   File "/usr/lib/python3/dist-packages/six.py", line 703, in reraise<br>2021-06-29 12:33:10.144 1310945 ERROR nova.virt.libvirt.guest     raise value<br>2021-06-29 12:33:10.144 1310945 ERROR nova.virt.libvirt.guest   File "/usr/lib/python3/dist-packages/eventlet/tpool.py", line 86, in tworker<br>2021-06-29 12:33:10.144 1310945 ERROR nova.virt.libvirt.guest     rv = meth(*args, **kwargs)<br>2021-06-29 12:33:10.144 1310945 ERROR nova.virt.libvirt.guest   File "/usr/lib/python3/dist-packages/libvirt.py", line 1265, in createWithFlags<br>2021-06-29 12:33:10.144 1310945 ERROR nova.virt.libvirt.guest     if ret == -1: raise libvirtError ('virDomainCreateWithFlags() failed', dom=self)<br>2021-06-29 12:33:10.144 1310945 ERROR nova.virt.libvirt.guest libvirt.libvirtError: Unable to write to '/sys/fs/cgroup/cpuset/machine.slice/machine-qemu\x2d48\x2dinstance\x2d0000026b.scope/emulator/cpuset.cpus': Permission denied<br>2021-06-29 12:33:10.144 1310945 ERROR nova.virt.libvirt.guest <br>2021-06-29 12:33:10.146 1310945 ERROR nova.virt.libvirt.driver [req-4f6fc6aa-04d6-4dc0-921f-2913b40a76a9 2af528fdf3244e15b4f3f8fcfc0889c5 890eb2b7d1b8488aa88de7c34d08817a - default default] [instance: ed87bf68-b631-4a00-9eb5-22d32ec37402] Failed to start libvirt guest: libvirt.libvirtError: Unable to write to '/sys/fs/cgroup/cpuset/machine.slice/machine-qemu\x2d48\x2dinstance\x2d0000026b.scope/emulator/cpuset.cpus': Permission denied<br>2021-06-29 12:33:10.150 1310945 INFO os_vif [req-4f6fc6aa-04d6-4dc0-921f-2913b40a76a9 2af528fdf3244e15b4f3f8fcfc0889c5 890eb2b7d1b8488aa88de7c34d08817a - default default] Successfully unplugged vif VIFOpenVSwitch(active=False,address=fa:16:3e:ba:3d:c8,bridge_name='br-int',has_traffic_filtering=True,id=a991cd33-2610-4823-a471-62171037e1b5,network=Network(a0d85af2-a991-4102-8453-ba68c5e10b65),plugin='ovs',port_profile=VIFPortProfileOpenVSwitch,preserve_on_delete=False,vif_name='tapa991cd33-26')<br>2021-06-29 12:33:10.151 1310945 INFO nova.virt.libvirt.driver [req-4f6fc6aa-04d6-4dc0-921f-2913b40a76a9 2af528fdf3244e15b4f3f8fcfc0889c5 890eb2b7d1b8488aa88de7c34d08817a - default default] [instance: ed87bf68-b631-4a00-9eb5-22d32ec37402] Deleting instance files /var/lib/nova/instances/ed87bf68-b631-4a00-9eb5-22d32ec37402_del<br>2021-06-29 12:33:10.152 1310945 INFO nova.virt.libvirt.driver [req-4f6fc6aa-04d6-4dc0-921f-2913b40a76a9 2af528fdf3244e15b4f3f8fcfc0889c5 890eb2b7d1b8488aa88de7c34d08817a - default default] [instance: ed87bf68-b631-4a00-9eb5-22d32ec37402] Deletion of /var/lib/nova/instances/ed87bf68-b631-4a00-9eb5-22d32ec37402_del complete<br>2021-06-29 12:33:10.258 1310945 ERROR nova.compute.manager [req-4f6fc6aa-04d6-4dc0-921f-2913b40a76a9 2af528fdf3244e15b4f3f8fcfc0889c5 890eb2b7d1b8488aa88de7c34d08817a - default default] [instance: ed87bf68-b631-4a00-9eb5-22d32ec37402] Instance failed to spawn: libvirt.libvirtError: Unable to write to '/sys/fs/cgroup/cpuset/machine.slice/machine-qemu\x2d48\x2dinstance\x2d0000026b.scope/emulator/cpuset.cpus': Permission denied<br></div><div><br></div><div>Any advise how to fix this permission issue ?</div><div><br></div><div>I have manually created the directory machine-qemu in /sys/fs/cgroup/cpuset/machine.slice/ but still having the same error.</div><div><br></div><div>I have also tried to set [compute] cpu_shared_set AND [compute] cpu_dedicated_set  they are also giving the same error.</div><div><br></div><div>Using ubuntu20.04 and qemu-kvm 4.2.</div><div><br></div><div>Ammad</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Jun 25, 2021 at 10:54 AM Sean Mooney <<a href="mailto:smooney@redhat.com">smooney@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Fri, 2021-06-25 at 10:02 +0500, Ammad Syed wrote:<br>
> Hi,<br>
> <br>
> I am using openstack wallaby on ubuntu 20.04 and kvm. I am working to make<br>
> optimized flavor properties that should provide optimal performance. I was<br>
> reviewing the document below.<br>
> <br>
> <a href="https://docs.openstack.org/nova/wallaby/admin/cpu-topologies.html" rel="noreferrer" target="_blank">https://docs.openstack.org/nova/wallaby/admin/cpu-topologies.html</a><br>
> <br>
> I have two socket AMD compute node. The workload running on nodes are mixed<br>
> workload.<br>
> <br>
> My question is should I use default nova CPU topology and NUMA node that<br>
> nova deploys instance by default OR should I use hw:cpu_sockets='2'<br>
> and hw:numa_nodes='2'.<br>
the latter hw:cpu_sockets='2' and hw:numa_nodes='2' should give you better performce<br>
however you should also set hw:mem_page_size=small or hw:mem_page_size=any<br>
when you enable virtual numa policies we afinities the guest memory to host numa nodes.<br>
This can lead to Out of memory evnet on the the host numa nodes which can result in vms<br>
being killed by the host kernel memeory reaper if you do not enable numa aware memeory<br>
trackign iin nova which is done by setting hw:mem_page_size. setting  hw:mem_page_size has<br>
the side effect of of disabling memory over commit so you have to bare that in mind.<br>
if you are using numa toplogy you should almost always also use hugepages which are enabled<br>
using  hw:mem_page_size=large this however requires you to configure hupgepages in the host<br>
at boot.<br>
> <br>
> Which one from above provide best instance performance ? or any other<br>
> tuning should I do ?<br>
<br>
in the libvirt driver the default cpu toplogy we will genergated<br>
is 1 thread per core, 1 core per socket and 1 socket per flavor.vcpu.<br>
(technially this is an undocumeted implemation detail that you should not rely on, we have the hw:cpu_* element if you care about the toplogy)<br>
<br>
this was more effincet in the early days of qemu/openstack but has may issue when software is chagne per sokcet or oepreating systems have<br>
a limit on socket supported such as windows.<br>
<br>
generally i advies that you set hw:cpu_sockets to the typical number of sockets on the underlying host.<br>
simialrly if the flavor will only be run on host with SMT/hypertreading enabled on you shoudl set hw:cpu_threads=2<br>
<br>
the flavor.vcpus must be devisable by the product of hw:cpu_sockets, hw:cpu_cores and hw:cpu_threads if they are set.<br>
<br>
so if you have  hw:cpu_threads=2 it must be devisable by 2<br>
if you have  hw:cpu_threads=2 and hw:cpu_sockets=2 flavor.vcpus must be a multiple of 4<br>
> <br>
> The note in the URL (CPU topology sesion) suggests that I should stay with<br>
> default options that nova provides.<br>
in generaly no you should aling it to the host toplogy if you have similar toplogy across your data center.<br>
the default should always just work but its not nessisarly optimal and window sguest might not boot if you have too many sockets.<br>
windows 10 for exmple only supprot 2 socket so you could only have 2 flavor.vcpus if you used the default toplogy.<br>
<br>
> <br>
> Currently it also works with libvirt/QEMU driver but we don’t recommend it<br>
> in production use cases. This is because vCPUs are actually running in one<br>
> thread on host in qemu TCG (Tiny Code Generator), which is the backend for<br>
> libvirt/QEMU driver. Work to enable full multi-threading support for TCG<br>
> (a.k.a. MTTCG) is on going in QEMU community. Please see this MTTCG project<br>
> <<a href="http://wiki.qemu.org/Features/tcg-multithread" rel="noreferrer" target="_blank">http://wiki.qemu.org/Features/tcg-multithread</a>> page for detail.<br>
we do not gnerally recommende using qemu without kvm in produciton.<br>
the mttcg backend is useful in cases where you want to emulate other plathform but that usecsae<br>
is not currently supported in nova.<br>
for your deployment you should use libvirt with kvm and you should also consider if you want to support<br>
nested virtualisation or not.<br>
> <br>
> <br>
> Ammad<br>
<br>
<br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature">Regards,<div><br></div><div><br></div><div>Syed Ammad Ali</div></div></div>