[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] Re: credit scheduler error rates as reported by HP and UCSD



Hi Mike,

> 
> My first observation is that the credit scheduler will select a vcpu
> that has exceeded its credit when there is no other work to be done on
> any of the other physical cpus in the system.

In the version of the paper that you read and refer to, we consciously 
considered  the three scheduler comparison using 1 CPU machine:
the goal was to compare the "BASIC" scheduler functionality.
I will present a bit more results for 2-CPU case during the Xen Summit.

> 
> In light of the paper, with very low allocation targets for vcpus, it
> is not surprising that the positive allocation errors can be quite
> large. It is also not surprising that the errors (and error
> distribution) decrease with larger allocation targets. 

Because of 1-CPU machine, the explanation of this phenomena is different
(it is not related to load balancing of VCPUs) and the Credit scheduler 
can/should  be made more precise.
What our paper does not show is the original error distribution for Credit 
(original -- means after it was released). The resulst that you see in
the paper are with the next, significantly improved version by Emmanuel. 
I beleive that there is still a significant room for improvement.

> 
> None of this explains the negative allocation errors, where the vcpu's
> received less than their pcpu allotments. I speculate that a couple of
> circumstances may contribute to negative allocation errors:
> 
> very low weights attached to domains will cause the credit scheduler
> to attempt to pause vcpus almost every accounting cycle. vcpus may
> therefore not have as many opportunities to run as frequently as
> possible. If the ALERT measument method is different, or has a
> different interval, than the credit schedulers 10ms tick and 30ms
> accounting cycle, negative errors may result in the view of ALERT. 

ALERT benchmark is setting the allocation of a SINGLE domain (on 1 CPU machine,
no other competing domains while running this benchmark) to a chosen
target CPU allocation, e.g., 20%, in the non-work-conserving mode. 
It means that the CPU allocation is CAPPED by 20%. This single domain runs 
"slurp" (a tight CPU loop, 1 process) to consume the allocated CPU share.

The monitoring part of ALERT just collects the measurements from the system
using both XenMon and xentop with 1 second reporting granularity
Since 1 sec is so much larger than 30 ms slices, there should be possible
to get a very accurate CPU allocation for larger CPU allocation targets.
However, for 1% CPU allocation you have an immediate error, because
Credit will allocate 30ms slice (that is 3% of 1 sec). If Credit
would use 10 sec slices than the error will be (theoretically) bounded
to 1%. 

The expectations are that each 1 sec measurements should show 20% CPU 
utilization for this domain.

We run ALERT for different CPU allocation targets from 1% to 90%.
The reported error is the error between the targetted CPU allocation and 
the measured CPU allocation at 1 sec granularity.

> 
> I/O activity: if ALERT performans I/O activity the test, even though
> it is "cpu intensive" may cause domu to block on dom0 frequently,
> meaning it will idle more, especially if dom0 has a low credit
> allocation.

There are no I/O activities, ALERT functionality is very special as 
described above: nothing else is happening in the system.


> 
> Questions: how does ALERT measure actual cpu allocation? Using Xenmon?

As, I've mentioned above we have measurements from both XenMon and xentop,
they are very close for these experiments.

> How does the ALERT exersize the domain? 

ALERT runs "slurp", a cpu-hungry loop, which will "eat"
as much CPU as you allocate to it. It is a single process application.


The paper didn't mention the
> actual system calls and hypercalls the domains are making when running
> ALERT.

There is none of such: it is a pure user space benchmark.


Best regards, Lucy

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.