On Fri, 30 Jun 2023 at 12:38, George Dunlap <george.dun...@cloud.com> wrote: > ... > Add a parameter, load_balance_ratelimit, to limit the frequency of > load balance operations on a given pcpu. Default this to 1 > millisecond. > ... > Without this patch, on a system with a vcpu:pcpu ratio of 2:1, running > Windows guests (which will end up calling YIELD during spinlock > contention), this patch increased performance significantly. > ---
I tested this patch with the following: - the vcpu:pcpu ratio of circa 2:1 in the host, - host with 72 pcpus - and 9 Windows guests with 16 vcpus each, - with background load inside the guests, where a few Windows apps were starting and stopping in parallel in a loop in order to hit 100% vcpu usage in each guest, so that the host pcpu usage was constantly at 100%. and observed a significant improvement in the responsiveness experienced by a user moving the mouse and using the keyboard inside the Windows guests, compared to when this patch is not present. In addition, when launching a trivial executable like 'ver' remotely in the Windows guests during the background load above, I noticed that: - when vcpu:pcpu is 1:1 and host has 100% pcpu usage -> with and without this patch, launching 'ver' remotely took 1 second or so - when vcpu:pcpu is 2:1 and host has 100% pcpu usage -> without this patch, launching 'ver' remotely took several seconds - when vcpu:pcpu is 2:1 and host has 100% pcpu usage -> with this patch, launching 'ver' remotely took a couple of second only -- so with this patch the host seems to be handling the extreme load at 100% pcpu usage more gracefully and the latency inside the guest is more linearly correlated to vcpu:pcpu..