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
|