Need opinion on deploying es on a server

I will be deploying a web application based on es on a single server , which we got at our disposal. Its has fair amount of RAM, around 64gigs and good enough processor.
First I have a query regarding deploying multiple nodes of es. Is performance any way improved or effected if we are deploying multiple nodes on single server machine.
If you think its good to do so, I have three options in mind. What do you think is the best one:

  1. deploy four VMs with three dedicated to three nodes of es and one to my application server
  2. deploy three nodes of es using docker images
  3. deploy all the nodes of es on the server running on different ports

Thanks for your time,

Why not just a single instance?

Even i wanted to know the same. We have indexes running into a few millions of rows. So I was under an impression that multiple nodes will have some positive impact on the performance of es. Correct me if I am wrong.

It might have a positive impact if the index size is too large for a single
box for your use case due to stressing the FS cache or ESs caches. It might
also be faster if updates come in so fast they would be better load
balanced against your a cluster. The Java client libs in particular can be
very smart about this.

Otherwise it can very easily make things slower as searches need to
coordinate across multiple nodes. You're adding extra hops to the query

This Qbox article on the topic is pretty good

64Gb of memory isn't all that much once you take into account FS cache with a decent sized index. I wouldn't recommend doing multi nodes on such a server - rather just do a bit of tuning and spread the I/O across multiple disks if you can.

I'm actually looking at doing option #3 but only because I have one very large machine (512Gb mem, 32 cores, etc) to work with. It's not what I would term as ideal but it's what I have to work with. This doc (Can I run multiple Elasticsearch nodes on the same machine?) does a great job of describing how to accomplish it.