VMware Cloud Community
CraigAlexander
Contributor
Contributor

Sizing - Growth of Existing ESX Datacenter

Hi,

We have 12 ESX 3.5 Hosts in our Datacenter across 3 clusters of 6, 3 and 3 nodes respectively.

The Hosts are all Dell 2950 servers with 2 by Quad Core CPUs and 32GB of RAM.

These hosts are currently averaging about 20% CPU and about 70% memory used.

The hosts appear to be performing OK but I am concerned about the effect if a Host in a cluster has a failure and all of the VMs are started up by HA on the other nodes in the cluster. I am concerned that the memory use on the other hosts will increased beyond the physical RAM of those hosts and cause performance problems to some or all of the VMs running on those hosts. I would also like to able to easily vacate all VMs from a Host in the case of maintenance on the server such as upgrades without effecting other hosts.

Does anyone know of any guidelines or 'rules of thumb' on how much RAM should be allocated as total of the VMs on a host to avoid the concerns above.

Or should I just set the following in the cluster setting and let VMware decide when I have enough VMs

Number of host failures the cluster can tolerate 1

Prevent VMs from being powered on if they violate availability constraints checked

Regards

Craig

0 Kudos
4 Replies
AndreTheGiant
Immortal
Immortal

Have a look at:

http://www.vmware.com/files/pdf/VMwareHA_twp.pdf

Andrew | http://about.me/amauro | http://vinfrastructure.it/ | @Andrea_Mauro
depping
Leadership
Leadership

I always use this document, it's the HA and DRS Bible: http://www.vmware.com/pdf/vi3_35/esx_3/r35u2/vi3_35_25_u2_resource_mgmt.pdf

Anyway, if the max is 70% you've got 12 x 30% capacity free. Which means you have more than sufficient room for a failover, or two, or even three for that matter. You can load them up to 90% and still have enough room for 1 host failure.

Duncan

VMware Communities User Moderator | VCP | VCDX

-


Blogging: http://www.yellow-bricks.com

Twitter:

If you find this information useful, please award points for "correct" or "helpful".

AsherN
Enthusiast
Enthusiast

My personnal view is that I would rather have all my guests running, even if I have to take a performance hit in case of a failure. I would rather explain to the 'C's that we are running little slow while a server is being fixed, than to explain why this expense, supposedely redundant setup they paid for still has some servers down.

0 Kudos
CraigAlexander
Contributor
Contributor

Duncan,

Thanks for your reply.

We actually have 3 clusters of 3,3 and 6 servers.

I'll detail what I have calculated so far. The assumption is that an ESX Host should never have to SWAP VMs to disk because of lack of RAM on that Host

Across the 12 hosts, 252 GB of physical RAM is used by the VMs

The same VMs have a total of 392 GB of RAM allocated. These two figures have a ratio of 0.64

I figured that if a host failed and the VMs need to be restarted elsewhere, then initially all of the RAM allocated to those VMs will be used on other hosts.

For example if the VMs on a host hav an total allocation of 30GB of RAM then these VMs will use about 20GB of RAM on the host. I want the free memory of the other nodes in the cluster to total more than 30 GB.

From this I have come up with the following as the maximum RAM allocation of the VMs running on a host depending on the number of Hosts in the cluster. This is based on the hosts having 32Gb of physical RAM

3 nodes -> 26 GB

4 nodes -> 31 GB

5 nodes -> 33 GB

6 nodes -> 35 GB

Does all this sound reasonable you think. If others think it would be usful I could 'pretty up' the excel spreadsheet I used and up load it.

Craig

0 Kudos