Hot Adding CPUs to RHEV

Hi folks,

This post means I’m officially back! My new role at the Big Red Fedora started this week and I really wanted to hit the ground running. Plus, RHEV 3.6 launched this month. I want to highlight not only one of the newer features (actually released with version 3.5), but also highlight some of the great work that is being done behind the scenes by one of my colleagues, Sanjay Rao.

The feature is CPU Hot Plug, and as the name suggests it allows a virtual admin to add vCPU’s to VM’s on the fly. As in, without rebooting the VM. It’s incredibly useful for anyone that needs to add horsepower on-the-fly to an application, but can’t spare the downtime and/or lost connections. But in true “Captain KVM” fashion, I didn’t want to just talk about it, I wanted to show it to you.

To that end, I worked with Sanjay to record a demonstration of the feature, while a database runs on the VM under review. The idea is that we have a TPC-C style workload generator hammering away at the database while we watch from a safe distance. Meanwhile, we have a live graph running so that as Sanjay adds vCPU’s to the VM we can see the performance jump.

Here’s the demo (view in full screen, allow it to “focus”):

Like the vast majority of actions in RHEV, you can add vCPU’s via the Admin console or the REST API. Want more info? Here’s the official KBase article:

https://access.redhat.com/articles/1339413

And the official documentation:

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Virtualization/3.6/html/Virtual_Machine_Management_Guide/CPU_hot_plug.html

Next up, or soon thereafter, I’ll bring a similar demo for a related feature that is brand new with RHEV 3.6: Hot Plug Memory…

Oh, and a quick note.. it doesn’t support hot “un-plug” just yet… Think it over for a few seconds, you’ll likely figure out why. 😉

Hope this helps,

Captain KVM

3 thoughts on “Hot Adding CPUs to RHEV”

  1. Nice demo, thanks. But I don’t understand why it should be that hard to hot-unplug CPUs. I would think that the kernel could be told to stop scheduling work to a particular core, and then the core could be removed?

    1. We’re actually working on it. Right now, if you hot unplug a CPU, you lose whatever is running on that CPU. So part of the process has to be moving threads over. Make sense?

      Captain KVM

  2. They’re working on it now.

    They’ve been working on it for some years now. Not an easy feature to achieve, i think.

    They’ll probably be working for some more time now.

    David (Kitai) Cruz

Agree? Disagree? Something to add to the conversation?