Previously I blogged about the Ravello platform and how it allows you to move an VMware workload (app) to the cloud (AWS / GCE) as-is, hence it is as easy as exporting the application from your VMware-environment and importing it into Ravello (here).
Recently I was invited to join the beta of the new Ravello platform which also allows to run these Ravello workloads on Oracle’s own cloud (Oracle Cloud Infrastructure) and test how the new additional modes of running Ravello increases performance for the workloads.
DVDStore v3 Benchmark
I decided to do a DVDStore3 performance benchmark first by running it in each ravello mode. For more information about the different Ravello modes scroll down to the next paragraph.
So first I spun it up on the West Europe 1 and US East 2 region, which uses the ‘tradional’ Ravello mode of software assisted nested virtualization (by binary translation).
After this I spun up the same DVDStore3 application on the US East 5 region (which is the Oracle Cloud Infrastructure region). This allows us to see the performance benefits of running the workload with Hardware Assisted Nested Virtualization instead of Software assisted virtualization.
Doing the tests on the different regions was as easy as creating a blueprint from the application, create an application from the blueprint and then republishing it to the dedicated region for this beta test (US East 5). So a few clicks and I had the application runnning on another region & cloud. This is also what I find to be a enormous benefit of Ravello.
Finally I ran the same application on bare-metal (which is the Ravello HVX-hypervisor running directly on the Oracle Cloud Infrastructure), by modifying the PreferPhysicalHost=true parameter of the app-VM and restarting it.
I ran the tests for an hour in each mode and noted the results, which are the total amount of orders processed in an hour.
Although i’ve used a simple test setup, because of the fact test setups are identical (vCPU, RAM, etc.) the test in my opinion gives a fair representation of the different modes Ravello can run in and which relative performance improvement you can get from running your workloads with Ravello running on Oracle’s own cloud infrastructure instead of on AWS / GCE with binary translation.
As promised some more clarification on the 3 modes Ravello can run your unmodified VMware workload in, depending on the cloud the application is published to:
- Software assisted nested virtualization by binary Translation
Ravello running on AWS, GCE and OPC:
Used when the underlying clouds where the hardware virtualization extensions are not available, HVX uses a software based nested virtualization technology called binary translation with direct execution to run the VMware VMs. This technology offers good performance that is acceptable for a wide variety of the workloads.
- Hardware Assisted Nested Virtualization
Ravello running on Oracle Cloud Infrastructure:
Oracle Cloud Infrastructure runs on the next generation of blazing fast hardware that supports virtualization extensions. These extensions allow multiple guest operating systems to share the same underlying hardware in safe and efficient manner. HVX utilizes these hardware assist CPU instruction sets to perform its nested virtualization directly on the underlying cloud hardware and offers significant performance improvements over the previous generation of HVX. Typically, the cloud providers do not expose the hardware assisted virtualization extensions to the guest VMs, which limits the performance that customers can realize when operating in a nested virtualization mode. However, with Ravello running on Oracle Cloud Infrastructure, we now have complete access to these hardware assist virtualization extensions, and can make performance boosts a reality.
Ravello running on Oracle Cloud Infrastructure, directly on HVX:
HVX also supports the ability to run directly on top of bare metal servers. By eliminating a layer Hardware assisted nested virtualization – of hypervisor in the middle, HVX is able to provide near native performance.
A graphical representation of the explanation above:
So what is this DVDStore you’re running these tests with?
I couldn’t come up with a better explanation of what is then quoting what the author says that it is:
DVDStore 3.0 ( Source: Github )
DVD Store 3 (DS3) is an open source test / benchmark tool that simultaes an online store that sells DVDs. Customers can login, browse DVDs, browse reviews of DVDs, create new reviews, rate reviews, become premium members, and purchase DVDs. Everything needed to create, load, and stress this online store is included in the DVD Store project.
I set-up a simple Ravello application which consists out of a DB/App/Webserver-VM (DB) on which a driver-VM (MGMT) simulates the OLTP-workload. I used DVDStore with a medium-sized database (10GB) and used the following settings for the web-driver running the workload on.
target=DB n_threads=100 ramp_rate=1000 run_time=60 db_size=10GB warmup_time=5 think_time=0 pct_newcustomers=20 n_searches=3 search_batch_size=5 n_line_items=5 virt_dir=ds3 page_type=php windows_perf_host= linux_perf_host= detailed_view=Y out_filename=results.txt
DVDStore performance benchmark results
The following (interactive) graph show the results which were obtained from the benchmarks described previously and show the performance for the different Ravello modes and especially the performance improvement running the workloads on Ravello on Oracle Cloud Infrastructure, which show it to be twice as fast (for this DVDStore3-application):
Running ESXi on ‘bare-metal’ Oracle Cloud Infrastructure
Besides the above performance benchmark testing, I also have a ‘full’ ESXi 6.5/NSX lab running on Ravello, which I dediced to spin up on the new ‘bare-metal’ option (with HVX running on bare-metal) with ESXi on top.
I noticed significant performance improvements for the nested VM’s running within my nested ESXi environment, as previously with binary translation it made it almost unpossible to use by the many layers of nested vitualization made it very slow using these VM’s.
Increased VM size
Good to mention is that the max number of vCPUs that you can assign to a VM running on Ravello on Oracle Cloud Infrastructure, has also been increased from 8 to 32 and the vRAM-size has gone up from 64GB to 200GB. So potentially it would be possible to run the benchmark with more power and squeeze out some more performance.
Besides that it allows to run quite a decent homelab :).
Running the DVDStore3-benchmark on Ravello on Oracle Cloud Infrastructure shows significant performance improvement and doubles the orders processed in an hour for the DVDStore3-application. The performance running the benchmark on bare-metal HVX was even better.
Running my ESXi-lab on Ravello on Oracle Cloud Infrastructure sure gives additional performance and makes it very usable as a replacement for my homelab.
Thanks again to Oracle for providing us vExperts with this free service again this year. Would be fantastic if we could keep on using the new Ravello Modes for homelab usage next year!
If you have any questions on Ravello and / or running it on Oracle Cloud Infrastructure, please feel free to contact me!