New diggs: VMware!

October 9, 2007 – 10:06 am

I have an exciting new role at VMware.

Plenty to say thanks for while at Sun — cool projects (like Solaris Internals, Solaris Performance and Tools, developing the community around Solaris Performance, MemTool, fun with Niagara and CMT) and working with many great people in PAE and the Solaris group, I’m hoping to keep doing our joint performance class at Usenix with Jim too…

There’s a great team here in the performance group — over 45 engineers and researchers working on many aspects of virtualization performance. You can see the whole team’s virtual blog here. Some of the things I’ll be looking at include scaling up of key applications, observability techniques, performance tuning and resource management.

But why is virtualization so interesting to a performance person? The answer is to look at the bigger picture… Performance is already super-critical for virtualization (it has to be efficient by it’s basic definition and value proposition). However, given the foundation, there is are a lot of interesting techniques that can be done…

If we think for a moment about the holy grail for performance management, we’re trying to get to a point where we can do automated performance monitoring, diagnosis and adaptation. That is, we’d like the environment to be able to take in a set of policies that we express about our applications and act accordingly on those policies.

In the past, I’ve seen customers struggle with creating the boundary that defines where we apply these policies — it’s quite hard to define these at the application component level – for example, which process or set of processes do I apply a CPU priority to? The virtual machine however provides a great insular boundary at which resource management policies can be applied. This encapsulation of an application allows us to express a basic set of resource requirements, and then let the infrastructure decide how much CPU to apply.

With this basic encapsulation in place, we can not just apply resource management at the box level (the typical consolidation play), but now we can express and manage at the grid level — with newer techniques like Dynamic Resource Scheduling we can automatically place workloads onto a grid of machines. Once there, we can dynamically load balance them by using vMotion to move them.

This is a convenient and easy way to express encapsulation and policy today. I don’t see this as being the end-point however, rather a convenient first step. In the future, we’ll want to break out applications into individual transactions or service levels. This would allow is to monitor in terms in specific currency of the target application, and then optionally automatically control resources based on these terms.

I’m also keenly interested in the progress that dynamic VM level probes are making — Keith Adams and team are working on an OS independent dynamic probe infrastructure (VProbes), that will let us monitor and analyze applications in a portable way across Windows, Linux and Solaris. Much more to come on this topic…

So, there’s plenty to fun stuff coming, stay tuned…

[ T:


Post a Comment