VDI “The Missing Questions” #4: How much SPECint is enough
In the first few posts in this series, we have hopefully shown that not all cores are created equal and that not all GHz are created equal. This generates challenges when comparing two CPUs within a processor family and even greater challenges when comparing CPUs from different processor families. If you read a blog or a study that showed 175 desktops on a blade with dual E7-2870 processor, how many desktops can you expect from the E7-2803 processor? Or an E5 processor? Our assertion is that SPECint is a reasonable metric for predicting VDI density, and in this blog I intend to show you how much SPECint is enough [for the workload we tested].
You are here. As a quick recap, this is a series of blogs covering the topic of VDI, and here are the posts in this series:
- Introduction – VDI – The Questions you didn’t ask (but really should)
- VDI “The Missing Questions” #1: Core Count vs. Core Speed
- VDI “The Missing Questions” #2: Core Speed Scaling (Burst)
- VDI “The Missing Questions” #3: Realistic Virtual Desktop limits
- VDI “The Missing Questions” #4: How much SPECint is enough (you’re already reading this!)
- VDI “The Missing Questions” #5: How does 1vCPU scale compared to 2vCPU’s?
- VDI “The Missing Questions” #6: What do you really gain from a 2vCPU virtual desktop?
- VDI “The Missing Questions” #7: How memory bus speed affects scale
- VDI “The Missing Questions #8: How does memory density affect VDI scalability?
- VDI “The Missing Questions” #9: How many storage IOPs?
Addition and subtraction versus multiplication and division. Shawn already explained the concept of SPEC in question 2, so I won’t repeat it. You’ve probably noticed that Shawn talked about “blended” SPEC whereas I’m covering SPECint (integer). As it turns out, the majority of task workers really exercise the integer portion of a processor rather than the floating point portion of a processor. Therefore, I’ll focus on SPECint in this post. If you know more about your users’ workload, you can skew your emphasis more or less towards SPECint or SPECfp and create your own blend.
The method to the madness. Let me take you on a short mathematical journey using the figure below. Starting at the top, we know each E5-2665 processor has a SPECint of 305. It doesn’t matter how many cores it has or how fast those cores are clocked. It has a SPECint score of 305 (as compared to 187.5 for the E5-2643 processor). Continuing down the figure below, each blade we tested had two processors, so the E5-2665 based blade has a SPECint of 2 x 305… or 610. The E5-2665 blade has a much higher SPECint of 610 than the E5-2643 blade with just 375. And it produced many more desktops as you can see from the graph embedded in the figure (the graph should look familiar to you from the first “question” in this series).
And now comes the simple math to get the SPECint requirement for each virtual desktop in each test system:
610 SPECint / 130 Desktops = 4.69
375 SPECint / 81 Desktops = 4.63
Rinse and repeat. Rather than walk through that logic and math for all four of the tests we ran, I summarized the results for you in the following figure. It shows the SPECint (technically the SPEC CPU2006 CINT2006 rate) required for each virtual desktop.
Essentially, we have TOTAL SPECint divided by NUMBER OF DESKTOPS. Simple, right? Does it mean anything? There are several noteworthy observations from this data:
- In three of the four comparisons, the E5-2665 and E5-2643 SPECint/VM were very similar, implying that SPECint is a good indicator for the expected virtual desktop density. In other words, a processor with a SPECint of 187.5 (like the E5-2643) can be expected to host roughly 60% as many desktops as a processor with a SPECint of 305 (like the E5-2665). And that is exactly what our testing showed!
- The lowest SPECint/VM requirement was achieved by both processors in the 1vCPU/1600MHz test, implying that this scenario represents the VDI “sweet spot” for these two processors. Translation: you can expect the best density at 1vCPU per desktop and a memory bus running at full speed.
- The smallest difference between these two processors was seen in the 1vCPU/1600MHz test.
- The 2vCPU tests definitely required substantially more SPECint/VM for the same simulated workload profile. It’s not twice as much, but it’s definitely more. What is going on with those 2vCPU desktops? That topic will be covered in more detail in later posts but it’s an important difference to note in the above chart.
What were we talking about? This blog set out to answer the question of how much SPECint is enough. The answer is, of course, that it depends on the workload and it depends somewhat on the memory bus speed. The most common use case is 1vCPU per virtual desktop on a system running the full 1600Mhz bus speed, and the result is 4.6-4.7 SPECint per desktop in that environment regardless of core count or clock speed. It is probably worth repeating: that result was independent of core count and clock speed. That means the SPECint is a good way to normalize expected desktop density. An increase in vCPU count or a decrease in memory bus speed will lead to a higher SPECint requirement, but 4.6-4.7 is a great place to start.
What’s next? Shawn will cover scalability differences between 1vCPu and 2vCPU desktop environments.