How to describe VMware performance requirements for our application to a VMware admin?
Solution 1:
Seriously, most VMware administrators aren't good at this: Poor understanding of resource management, often no Linux knowledge (it helps) and lack of time bandwidth. I find most in-house admins have a difficult time maintaining deep virtualization knowledge.
Luckily, there's a book you can read!
Most VMware environments aren't great: Poor cluster design, bad resource planning, substandard storage (i.e. Synology NAS), misconfigured HA, no monitoring or patching.
VMware as an organization fails us: They are particularly bad at disseminating up-to-date information and promoting best practices. Basic searches for common questions generate results from 2009 and older revisions of VMware, despite the fact that processes and designs have changed over time.
All of these things will work against you.
You should determine the real requirements of your solution. Being able to accurately state that your appliance requires: 2 vCPU, 8GB RAM and 500 IOPs storage performance would go a long way to someone like me.
The other approach is to observe a healthy or ideal environment and extrapolate the metrics from there.
You've described problems with certain deployments. What were the issues and bottlenecks?
An example of a right-sized VM:
An Exchange server for a 300-user organization.
- We have 6 weeks of workload/stress heatmaps versus time.
- 6 vCPUs keeps us above the stress zone with buffer room for spikes.
- 32GB RAM keeps us above the stress value, but isn't an unreasonable amount above what's really needed.
- I could reclaim a few GB of RAM and a vCPU, but all in, this is an efficient VM.
- It would be wise to get this type of monitoring of your application under ideal conditions.
Examples of VM resource monitoring.
Good-ish: - VM is right-sized. - CPU is overcommitted across the cluster, but we're not running into contention.
Bad-ish:
- VM won't ever get all of the RAM it's configured with.
- VM is already swapping RAM.
- CPU is way over-configured.