Running ES on virtual machines

What data points should be considered to make sure that running ES on a VM is similar to running it in a physical server, with respect to its performance?

I know disk I/O is of prime consideration when using VMs. So how is elasticsearch deployed in production using VMs? Any pointers or suggestions will help.

Thanks
Ashish

Hi Ashish,

I'm running ES on virtual machines. It works, but of course not as well as
on physical ones. Partly due to I/O, like you said. That translates into
lower insert rates (where, at least for me, storage is the bottleneck),
while queries aren't that much worse. I guess it also depends on which
hardware setup and which technology you run your VMs.

So if you want good insert rates, you better make sure that each VM has
dedicated storage. Otherwise you might notice that by adding more nodes you
don't get better insert speed (might be worse), because they will take
turns in writing to the poor disk.

In my experience, queries don't suffer that much, unless you push it. For
example, in the tests I did, once query times went over 1 second or so, as
I continued to add documents, the performance drop was much bigger with VMs
than it was with physical machines. That probably is also due to poor I/O.

Needless to say, the more memory, the better :smiley: And I guess all the
performance tuning you could do for a physical machine would apply to VMs
as well.

Good luck!
Radu

On Tuesday, July 17, 2012 9:02:15 PM UTC+3, Ashish Nigam wrote:

What data points should be considered to make sure that running ES on a VM
is similar to running it in a physical server, with respect to its
performance?

I know disk I/O is of prime consideration when using VMs. So how is
elasticsearch deployed in production using VMs? Any pointers or suggestions
will help.

Thanks
Ashish