Juice it up – Performance in CloudShare

These days, when Cloud Computing is no longer just a buzz word but actual types of services and solutions, we find ourselves facing a problem – The huge quantity and variety of the different services providers. Choosing your cloud provider these days is a confusing and exhausting task – you have to compare the pricing, the features and the total solution’s value of different providers before you choose what fits you best. The problem is that each providers’ services and features are very different from one another, but although there are so many differences between the providers, there is one very important criteria that’s shared between them all – Performance.

Being an IT guy, many times when I evaluate solutions (not necessarily cloud solution) I always try to cut to the chase and get the bottom line – “Okay, nice features and all, but how well does the product actually work? How does it handle loads, how many resources does it consume?” and etc. It’s not that I don’t value the features, on the contrary, but for me the bottom line will always be “How well does the product deliver”. This is the same with cloud solutions – The features are great (ours especially 😉 ), but I care a lot about how well my VMs run when I actually work on them.

A few months ago I ran into a very interesting Performance comparison analysis of different IaaS providers published by cloudspectator® (Full article here). In their analysis, they compared Performance vs. Pricing of the top 5 IaaS providers.
As you can guess, I was very interested to see how CloudShare fared in the same test, so I ran it by myself with a similar layout (2 CPU, 4GB RAM VM) on a CloudShare ProPlus environment. Summing all the results in a table turned out to be surprisingly awesome:

unixbench

These results were very satisfying for me – Much of my team’s work is centered on managing and optimizing our infrastructure for better performance as we are aware of how frustrating it can be when you try to work and it seems like all the juice ran out of your VM. It was satisfying to know that our hard work paid off. 🙂

Performance on the infrastructure side is always important. That been said, many times you can still help and improve your VMs’ performance by yourself, on the client level. So here are a few guidelines for juicing up your VMs:

  1. CPU – Less is more:
    Many times our intuition is to throw as many resources as we can, including CPU cores. However, adding CPU cores can actually cause degradation instead of improvement depending on the usage. When there are multiple cores, the GuestOS and the Virtualization Hosting OS need to schedule and decide on which CPU core each thread is going to run on. In cases of low CPU usage, this overhead might actually cause worse performance. Therefore, if your machine is not a high CPU consumer, granting it less cores might actually improve your performance. A decent threshold to consider lowering the CPU count is if you usually have less than 20% CPU average usage on your VM.
  2. Memory – More is more:
    Regarding memory, our intuition is usually right. Having as much memory as possible is almost always a good thing. But how do you know if you should increase your memory? A very nice indicator for that is the paging operation. If a lot of paging is going on in your VM, then you’re probably exhausting your memory and should add more. Paging operations are especially bad since it involves storage operations which are always much slower than RAM.
  3. Storage – deleting deltas:
    Storage seems to be a bit out of the customer scope since it’s entirely infrastructure level and the client-side has no control over it. Right? Well, apparently not. Your CloudShare environments are based on your own Blueprints and Snapshots. Each Snapshot is a baseline for your currently running environment, so every change you make is a delta from the Snapshot. As time passes by and the amount of changes you make is getting bigger and bigger, this delta has a strong impact on your storage performance. So it’s always a best practice to take a Snapshot every once in a while. Good for your performance and good for your recovery options as well.
    Another small note regarding Storage Performance – there’s no need to run defrag tools on your file systems. Defrag is only efficient in cases that the file system resides on a lone HDD. Since your file systems are spread across our Storage Appliances, defrag operations are not really efficient or recommended.
  4. Tier up!
    CloudShare provides 3 different solutions – ProPlus, TeamLabs and Enterprise. As you tier up, you get an even better infrastructure and resources limits. If your ProPlus environment doesn’t seem to satisfy your needs, then you are probably a perfect candidate for a TeamLabs solution, and so forth. Feel free to contact our sales team for a free trial!