Our IT staff has been given the task of improving the performance of all of the VM's used at our company. This includes those remoting into a hyper-v server and those using their own VM's on their own machines. The main applications being run are Visual Studio and Autodesk tools like Autocad and Inventor

Will we receive better performance (assuming equal cost) by adding RAM to each person's machine or by switching everyone to SSDs?

  • 1
    Both? Really depends what they are doing on the VM. Are they running memory hogs like Photoshop? or something else that is disk intensive. Start first by figuring out what everyone is running and that will give you a better insight. PROC might be another thing. Does everyones machine have Virtual boosting technology (VT-x)? is it on. – Jason McD Apr 10 '14 at 19:58
  • Also what is the current RAM count and do the machines use or need more than they have? The effectiveness of adding RAM depends on if the system actually lacks any, the way it is being used. – TheUser1024 Apr 10 '14 at 20:09
  • This is like your boss telling you to do a better job. It's non-specific and vague and doesn't rely on any previous baseline benchmark. There could be so many things affecting performance (at the host level and the VM level) that giving you any insightful answer is impossible. That being said, start with increasing the RAM allocation to the VM's and see what that does. If it doesn't help then you're going to have to take the time to benchmark each host and VM to identify bottlenecks. – joeqwerty Apr 10 '14 at 21:37
  • @jth41, what did you end up doing? – rob Apr 25 '14 at 21:32

It depends, but without more information it's impossible to say that one solution will give you the best performance boost across the board on all your machines. You'll need to monitor the resource usage of each host to make an informed decision. I haven't used Hyper-V, but I have used VMware vSphere and it provides a nice resource utilization dashboard. I would suspect that Hyper-V has something similar.

If the host machines are I/O-bound, then SSDs may help more. If the hosts are memory-bound, then more RAM may provide a greater performance boost.

The preferred solution may also vary from machine to machine--for example, the Hyper-V servers and personal workstations may require different solutions, and even individual servers or individual users' machines may require different solutions from others.

That said, if you are just going to take a shot in the dark, the workstations will almost certainly benefit from SSDs whereas they won't benefit from additional RAM if they already have plenty. If you must upgrade blindly, I'd upgrade some of the servers and workstations to SSDs first to see if that gives a noticeable improvement, and plan the rest of your upgrade path based on those results. If it turns out the servers don't benefit from the SSDs, you can move all the SSDs to the workstations and upgrade the servers' RAM. But on the flipside, if the workstations don't have enough RAM to begin with, your users may run into limitations on the sizes of the VMs that they can run. Again, you're best off measuring each system first.

| improve this answer | |

As @JasonMcD mentioned in the comments, it really depends on what the VMs are doing. You also have to consider what the host system is doing and identify sources of contention.

If the VM is heavily accessing disks, causing the host system to compete for disk I/O, a good idea is to install a second physical disk and place the VM's virtual disks on that, leaving the original drive for the host OS all to itself (alternatively, dedicate the entire second disk to the VM.)

You'll see performance gains no matter what if you replace spinning disks with SSDs, of course.

Typically you'll dedicate a portion of RAM to a VM during setup. So if either the host or VM (or both) are running out of RAM for their tasks, more RAM is needed. You could try adjusting this value if, for example, the VM is underutilizing its RAM but the host system keeps running out.

More RAM is typically better for any system that's decently used, VM or no, because it allows modern operating systems to cache and schedule I/O better.

If you want a quick solution without analysis, you're most likely going to see the greatest performance increase by switching to SSDs unless you have systems or VMs which are having serious memory issues with the applications they run. This is because modern OSes page out things to disk that either overflow RAM or aren't used in a while, and SSDs increase the speed of this process substantially.

CAD programs are heavy on both disk I/O and RAM so it's really hard to say in your situation for sure without testing and knowing about your users workflows.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.