Hi guys,
1) Not an expert, but my understanding is ideally we should avoid oversubscription of logical CPU on ESXI host, but if we must do oversubscription of logical CPU, is there any maximum limit say 3:1 , where 3 is vCPU and 1 is logical CPU on the host?
2) What is max acceptable ready time for vcpu?
Google search shows following:
It is normal for a VM to average between 0–50 ms of CPU ready time; anything over 1000 ms is considered to lead to VM performance problems
Are we saying:
1) 0-50msec ( acceptable)
2) Anything between 50msec-1000msec is abnormal, but it should not impact performance
3) Anything above 1000msec, performance issue.
Thanks and have a good day!!
Over-subscription is fine (core or thread), it really depends on how much those vCPUs are utilized and whether the workload's / your requirement can deal with HW (SMT) or scheduling contention. Any ratio you read about is usually based on observed VM utilization averages, e.g. 2 vCPUs to 1 core or 1 thread is unlikely to cause contention, 4:1 more so etc. If you have 40 cores and 2 x 20vCPU DB servers that are 50% utilized on average and 80% at peak, you might only want to run 1:1 (or even less to leave more headroom for IO, esp. with vSAN). If on the same host, you run 160 x 1 vCPU VMs of barely utilized services, that might still leave a lot of headroom available. The only way to determine a ratio is to look at a function of host usage (conservative, utilization if aggressive) and avg. VM contention.
With regard to ready time, you might want to watch this here, 24 min. in: https://www.vmworld.com/en/video-library/video-landing.html?sessionid=1589484575728001Zb6J (vmworld.com account is free).
Over-subscription is fine (core or thread), it really depends on how much those vCPUs are utilized and whether the workload's / your requirement can deal with HW (SMT) or scheduling contention. Any ratio you read about is usually based on observed VM utilization averages, e.g. 2 vCPUs to 1 core or 1 thread is unlikely to cause contention, 4:1 more so etc. If you have 40 cores and 2 x 20vCPU DB servers that are 50% utilized on average and 80% at peak, you might only want to run 1:1 (or even less to leave more headroom for IO, esp. with vSAN). If on the same host, you run 160 x 1 vCPU VMs of barely utilized services, that might still leave a lot of headroom available. The only way to determine a ratio is to look at a function of host usage (conservative, utilization if aggressive) and avg. VM contention.
With regard to ready time, you might want to watch this here, 24 min. in: https://www.vmworld.com/en/video-library/video-landing.html?sessionid=1589484575728001Zb6J (vmworld.com account is free).
Hi !
2.5 to 1 / 3.5 to 1 is considered OK for avarage/normal/not critical workload.
For extremly critical workload (like critical VMs with multiple vCPUs ) you can use n-1 policy (1 core leave for esxi). All depends. Do some tests in your enviroment and check what suits you.