[Openstack-operators] Setting IOthreads on a Nova Instance

pushpesh sharma pushpesh.eck at gmail.com
Fri Jun 12 06:49:30 UTC 2015


Hi list,

I need some expert opinion on some problem I am facing with
OpenStack+Ceph environment.

I running a 3+ node cluster with OpenStack Juno. It is using ceph RBDs
as cinder volumes. Functionally setup is working fine. However my
expectation are related to block performance of RBDs inside a VM.

I am observing a throttling effect in 100%- 4K RR iops after a point.
Lots of CPU
cycles got wasted in iowait. I suspect a single iothread per VM is
causing this.I came to know about few tuning parameter that libvirt
provides. It looks pretty straight forward to set these parameter
in domain xml . However I am not able to do so. I didn't find any way
to pass these
parameter form nova directly, and when I edit domain.xml directly
using 'virsh edit' the changes vanish even after saving the xml
properly.(I know it is not a clean way to this, but a hack)

It could be validation problem:-

############
#virsh dumpxml instance-000000c5 > vm.xml
#virt-xml-validate vm.xml
Relax-NG validity error : Extra element cpu in interleave
vm.xml:1: element domain: Relax-NG validity error : Element domain
failed to validate content
vm.xml fails to validate
##################

Second approach I took was to setting QoS in volumes types. But there
is no option to set iothreads per volume, there are parameters related
to max_read/wrirte ops/bytes.

Thirdly, editing Nova flavor and proving extra specs like
hw:cpu_socket/thread/core, can change guest CPU topology however again
no way to set iothread. It does accept hw_disk_iothreads(no type check
in place, i believe ), but can not pass the same in domain.xml.

Please suggest me a way to set the same.

-- 
-Pushpesh



More information about the OpenStack-operators mailing list