Aerospike on Virtual Machine?

Originally posted by awishformore » Sun Oct 13, 2013 4:36 pm

Hello dear AS team.

We are currently strongly considering Aerospike as database back-end for our cloud platform. It is exactly the kind of solution we are looking for in terms of throughput and latency.

However, the information on (potentially) deploying Aerospike in a virtual environment is very sparse. Our architecture’s complexity would increase tremendously if we had to deploy Aerospike outside of our virtual machines. It would thus be ideal if we could deploy Aerospike on a VM, even if we assign complete hard drives & CPUs.

To be more specific, is there anything you can tell us about Aerospike in regards of VMWare? Does running AS in a VM impact performance a lot? What scenarios are possible, and how could we make sure to still squeeze the maximum out?

We would really appreciate some input.

Regards, Max.

Re: Aerospike on Virtual Machine? Postby young » Sun Oct 13, 2013 9:44 pm

We do use VMWare extensively in our development, but have not tested much on performance. The biggest issues we find with a virtualized environment are:

  • SSD performance may be sup-par
  • Network performance may be much lower

If you want to use SSDs (you can also use RAM + HDD for persistence as well), one thing I would consider doing is trying our ACT test tool. This tool was created to test the performance of the SSD using our use case (large block writes with concurrent small block reads). We have open sourced it and you can get the tool at: http://aerospike.github.io/act/ By testing the SSDs on bare bones and through a VM, you can see what impact the VM will have on performance. Note that we have found that results vary depending on the exact OS. VMWare likely has hardware optimizations, so you should check with them on the best way to get maximum performance on SSDs.

On the network side, we have found similar issues. There are ways to improve performance on bare metal servers by distributing interrupts on multiple queues on the network device. However, VMs don’t really allow for this.

We normally find that VMs get substantially less performance than bare metal. However, depending on your use case, this may be an acceptable trade-off with ease of setup.

you can also use RAM + HDD for persistence as well

How often data is being copied to disk in this mode? Does it affect the performance (latency & throughput)? yazovsky