0

We have some web services running on a VM in VMWare-ESXi. We would like to see how the system behaves under certain amount of users. How can we configure the VM to provide accurate results without having collisions with the others sharing the same host, like network, RAM, disk...

I have found the following settings: CPU -> Reservation / Limit RAM -> Reservation / Limit

And for RAM and disk I have not been able to find anything.

How could I achieve this "reliable" setup to start testing?

Dave M
  • 4,494
  • 21
  • 30
  • 30
nck
  • 129
  • 1
  • 7
  • Why is this downvoted? – nck Apr 22 '21 at 16:50
  • Because it is Off-Topic. You do not wrote a clear problem and also question – djdomi Apr 22 '21 at 18:34
  • @djdomi How is this off-topic? I wrote a clear question, how can I isolate the resources for a VM in Esxi, the I gave a context on why I want to this, and then I also provided what I have found out by myself which I don't have the knowledge to know if it is right. And this stack is described in a meta as `In general, SF is more about installation, configuration, and automation` So you could argument what do I have to do to improve the question, otherwise we can not learn. – nck Apr 22 '21 at 20:11
  • What are you actually trying to monitor/metric? If it's just how busy a VM gets under load then you can monitor that VM's performance real time and over time regardless of reservations/isolation. I would start with monitoring the web app itself at the app level, then the OS level, then the VM level. – TheCleaner Apr 22 '21 at 20:58
  • @TheCleaner sorry, maybe I did not explain my question correctly. I want to monitor a webservice for example how many users can handle the web service simultaneously until I start getting delays of some threshold (with any tool like JMeter). My question is how I can configure the VM so that it works as a physical server that is not affected by other VMs running on the same server. – nck Apr 22 '21 at 21:15

1 Answers1

3

This doesn't really make sense.

If you want to load test the VM with a given virtual hardware configuration, the host must be able to provide it consistently and reliably; if there is resource contention on the host, the VM will slow down (along with all the other VMs running on the same host) and the load testing results will be meaningless.

You can limit the resource usage of a VM, but if you do that the VM will behave as if it has fewer resources available; you will save the other VMs from slowing down, but the load testing results will be just as unreliable (if not worse).


Update:

According to your comments, you want the VM to run at full performance regardless of the load on the host, even if this means slowing down other VMs.
This can be done to using reservations for CPU and RAM; this also applies to network bandwidth.

For disk I/O things get a bit more complex because you can only define relative priorities between VMs, but you can do something similar using disk shares.

Massimo
  • 68,714
  • 56
  • 196
  • 319
  • Sorry If I did not formulate the question clearly. I do not want to load test the VM, I want to load test my web service in the VM, what I'm asking is what can I do in the settings of the VM to have a simulated hardware that is not affected by what other VMs in the same host are doing. – nck Apr 22 '21 at 21:18
  • 1
    Let's make this clear: if the VM has 8 CPUs and 16 GB of RAM, you want it to be able to use them up to 100% regardless of how much loaded the host is? Because from your question it seemed much like the opposite, i.e. you wanted the VM to limit its resource usage in order to not slow down other VMs on the same host. – Massimo Apr 22 '21 at 21:53
  • Exactly, I want those 8 CPUs and 16 GB ram 100% available for this VM which contains my app under test, and ideally, and here in also lost also some disk writing speed, and network bandwidth. – nck Apr 22 '21 at 22:31
  • Ok, see my update then. – Massimo Apr 23 '21 at 07:15