Turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- VMware Technology Network
- :
- Cloud & SDDC
- :
- vCenter
- :
- vMotion & Resource Management Discussions
- :
- Understanding how skew is calculated

Options

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page

aafrashteh

Contributor

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

06-24-2010
04:13 PM

Understanding how skew is calculated

Hello everyone, I am trying to wrap my head around vCPU skew calculations. I am referencing perf-vsphere-cpu_scheduler (VMware vSphere™ 4:

The CPU Scheduler in VMware® ESX™ 4). I understand this statement :

*In ESX 4, the progress of each vCPU in a virtual machine is tracked individually and the skew is measured as the difference in progress*

*between the slowest vCPU and each one of the other vCPUs*.

Where I'm losing it is this :

*Figure 1 illustrates how the skew is measured differently in ESX 3.x and ESX 4 using the example of a 4-vCPU multi-processor virtual*

*machine. CPUs v0 through v3 denote four vCPUs of the virtual machine and the time goes upward. The green bars for each vCPU*

*represent the duration while the vCPU makes progress. Note that the vCPUs make progress at different times. This may happen when*

*the system is overcommitted or interrupted. The size of the bars is a multiple of unit time, T, for the sake of the explanation. The red*

*arrows represent the amount of skew accumulated for corresponding vCPU.*

*Figure 1 (a) shows that the accumulated skew for v0 and v1 is 3T while the actual difference in the guest progress is only 2T.*

*This is a 50 percent overestimation of the skew and may result in unnecessary co-scheduling overhead. Figure 1 (b) shows the*

*new implementation that tracks the difference in progress from the slowest one. Note that the skew for v3 is 2T, which is an*

*accurate estimation.*

What I'm trying to understand is why the accumulated guest OS skew for v0/v1 is 2T and not 3T? I know "progress" is made if a vCPU is used or marked idle by the guest OS. ESX 2.x - 4 will NOT register skew if v0, v1, v2 make progress, and v3 is idled by the guest OS. I understand there are a lot more scheduling options for ESX4 since it tracks skew more accurately...it will try to co-schedule all CPUs to decrease skew, but will also allow a much wider scope of vCPU combinations that will either keep skew even or lower it. Example if v3 advanced too much against v0/v1

(v0, v1, v2, v3)

(v0, v1, v2)

(v0, v1, v3)

(v0, v1)

(v0, v2)

(v1, v2)

(v0)

(v1)

(v2)

Ones it can't do :

(v1, v2, v3)

(v0, v2, v3)

(v0, v3)

(v1, v3)

(v2, v3)

(v2, v3)

(v3)

Just trying to understand the skew calcs...help?

0 Replies