Why less is more...
This blog illustrates how performance varies from provider to provider, and so making comparisons based on number of processors, GB RAM and storage capacity simply doesn't work. A provider who appears to be very economical at a first glance may turn out to be more expensive if you need to take out a heavily overspec'd VM to achieve your desired performance.
To date, the majority of customers who migrate to us require 50% less CPU and RAM than before yet gain much better performance as well. Smaller bills and better performance? A true win/win!
Let's see just how this is possible (without any black magic voodoo)...
Apples with Apples
Let's first consider CPU. We performed a comparison between three other cloud providers and ourselves to see how processing power stacked up. A Windows Server 2008 R2 VM was taken from each cloud, configured with 4 processor cores. If all the VMs have 4 processors they should perform more or less equally, right? Wrong.
Already I can hear the sound of cynics questioning a graph which shows the author as a clear winner. However it's not too hard to believe once you consider the architecture differences.
Both Provider-A and Provider-B are very well established public cloud providers. However, they are using very old processors; AMD 2218 and 2374 were found to be under their hoods respectively.
Provider-C was found to be using Xeon X5650 processors. These processors have a high clock speed and are quite powerful but again somewhat dated.
The CronoSphere platform is powered by Xeon E5 processors which were the newest on test. In addition the CronoSphere platform used the most recent release of VMware whilst the others a mixture of open source hypervisors. The efficiency advantages of VMware help unlock the potential of the underlying hardware.
This example illustrates the fact that "not all processor cores are equal". An application which runs perfectly well on one processor core might take two or more elsewhere.
Are you compensating for something?
Next up we have RAM. More is better, right? "You can never have too much RAM!"; Well whilst there may be some truth in these statements, when using a cloud provider its far more wallet friendly to have as much RAM as you need and no more.
In recent times we have been quite surprised at the amount of RAM customers have asked for. All because they have a history of performance issues with a previous provider which have been "cured" by adding more RAM.
We see this mostly in database servers (of all types, MS SQL, MySQL, Oracle etc.). So let's spend two minutes considering what’s going on here.
Refining queries and suitable database indexing are a must but sooner or later you're going to find yourself going to storage to retrieve that data you need. Anyone who's been involved with database tuning knows that the best I/O is the I/O you don't need to make at all. If the data you need is already in cache (RAM) then you've just saved a trip to the storage and since RAM is faster than storage by a long way, this is the key to getting queries to execute quickly.
In an ideal world your entire database would be kept in RAM, so only writes would need flushing out to disk. However if your database is anything larger than a few GB, this is not practical or economically viable. So the cache is used to speed up access to commonly requested tables/data, but the underlying storage is required to do the bulk of the work.
And here lies the problem - most cloud providers are simply unable to give customers the storage performance they need. Queries run slowly, application response is affected and so the "cure" is to increase the amount of cache (RAM) to avoid performing I/O.
Time for another comparison. Using Iometer we compared the storage performance of three other cloud providers and ourselves. We ran the test twice for ourselves to show the differences between our EMC (SSD/Disk Hybrid) and Pure Storage (all SSD) arrays. We used a 32K block size as 4K results are meaningless these days and just give higher (read "more impressive") numbers.
The results speak for themselves. If you happen to be hosting your database server on a cloud platform that has poor storage performance then the only remedy is going to be increasing your cache (RAM) to compensate.
We recommend our all-SSD Pure Storage tier for demanding workloads. Customers have access to incredible performance with <1ms latency on average. Databases fly along and so the amount of cache (RAM) can be reduced.
That's right - typically customers who move to Cronos typically have 50% smaller footprints AND far better performance than previously. It's a bold claim, but the reward for building an industry leading cloud platform with only the best components.
We're often met with scepticism, but once a customer is migrated and running from our platform, the results justify the claim.