Ask Your Question

Why can I not get CPU steal time (%st) for co-located VMs?

asked 2016-12-29 01:03:08 -0500

Ali84 gravatar image

updated 2016-12-29 01:12:09 -0500

I'm trying to carry out a series of experiments regarding VM performance. I've already placed two VMs on a same physical core of one host (setting flavor extra-spec & host aggregate or using only virsh vcpupin ...) and imposed high load (%70 to even %100) on one VM (by running stress-ng or bench utilities or infinite loop) and ran some CPU intensive application such as compressing utility to make a big file on the other. Unfortunately all the way through from the beginning top on none of the VMs shows any amount for cpu steal time (%st) which implies that no interference & contention exists between two VMs while using the shared CPU. I can't configure why we observe such a behavior. Anyone know how I can set up a senario so there will be contention between two co-located VMs and get some amount for %st parameter? It would be of great assistance , thanks.

PS: My Openstack deployment consists of 2 compute node each including 8 physical core.

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted

answered 2016-12-29 04:18:15 -0500

volenbovsky gravatar image


I would say that having zero steal time for those VMs which have pinned CPUs is Well, in your scenario - it is configured in overallocating manner - 2 VMS For me it sounds that host OS/QEMU/KVM do not result in guest realizing that it works in 'overallocated' environment Your question is about having stea time visible - so I think that in order to see that you can actually disable pinning but also disable most of CPUs. That is, decrease amount of physical resources In case you will have like 4 CPUs and then launch a VM with I think it is inevitable that VM will have CPU time stolen for host OS (you can inject some load on host Processes...). Next thing you can try is to launch another VM(s) and increase the load on those. That is like normal overallocation scenario (i.e. Without pinning) so it should result in some steal time

edit flag offensive delete link more


Hi, thank you so much.

I may clarify that 1st my sole purpose of pinning was a.Prevent VMs from floating freely on different cores and b.Keep them both together on a same core. 2nd it is desirable to have a VM's time stolen only by having load on other neighboring VMs not by host's processes.

Ali84 gravatar imageAli84 ( 2016-12-29 11:48:39 -0500 )edit

So considering the latter I guess the only option would be disabling all cores but one so the VMs automatically would be placed together & remain there. But the question here is shall I do this by setting vcpu_pin_set key to for example 0 on nova.conf file in the respective host or ..

Ali84 gravatar imageAli84 ( 2016-12-29 11:59:59 -0500 )edit

.. Do I need to disable cores on the host itself which I don't have any idea how to do it besides this would result that one single core serves VMs as well as host processes which is not a valid senario in our experiment.

I would be very grateful for any further assistance.

Ali84 gravatar imageAli84 ( 2016-12-29 12:07:07 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Get to know Ask OpenStack

Resources for moderators

Question Tools



Asked: 2016-12-29 01:03:08 -0500

Seen: 508 times

Last updated: Dec 29 '16