CVM cores – What has changed and Why?
How does Sizer assign CVM cores up until today(Aug 2021)?
Sizer allocates resources to CVM as part of the sizing exercise. Here, we will be looking at CVM cores specifically.
Sizer allocates CVM cores based on a combination of factors – like workload type ( 4 for Server Virt, 12 for Databases etc) or based on node type (higher CVM cores for NVMe nodes for ex ) or as per guidance on certain features (rules around Async/NearSync etc).
However, while attributing cores to CVM, Sizer used ‘Effective Cores’ , which means, these were specInt adjusted cores and not actual physical cores available to CVMs.
For ex:
Lete say Sizer allocated 4 cores to CVM. These are ‘effective cores’ which are specInt adjusted.
As seen in the table below, these many “effective cores” are attributed to CVMs in the sizing stats table.
7 nodes and 4 cores for CVM per node : 7 x 4= 28 cores (effective cores)
Lets say that the node recommended had the CPU – Gold 5220.
So, translaitng the effective cores to physical cores –
28 ‘effective cores’ – is approximately 22.4 physical cores (adjusting for the specInt for Gold 5220)
=22.4/7 = 3.2 physical cores/CVM
So roughly 3 physical cores for CVM – which is on the lower side and can cause performance issues.
As CPUs get better in performance (Ice Lake > CaseCade Lake > Sky Lake), their specInts are higher and thus, it translates to even fewer physical cores.
What has changed?
The CVM cores allocation is now based on the physical cores (and not effective cores).
So, when Sizer assigns 4 cores, its 4 physical cores (of Gold 5220 in above example) and not effective cores.
Folloiwing up from the previous example: (Refer to image below)
The tooltip shows the total physical cores assigned to CVM : 7 x 4= 28 cores
For the rest of the calculation on the sizing stats, these are convered to effective cores , so , 28 physial cores = 33.5 ‘effective cores’
Note: Depending on the processor, the effective cores value ( in red here as -33.15) can go as high as 50-60% of the physical cores (for example for high end CasCade Lake refresh or high end Ice Lake processors), further validating the point that CVM would be getting fewer underlying physical cores (and hence the change).
What is the impact to sizing as a result of this change:
The sizings are more robust and aligns the CVM allocation ensuring to remove any CVM performance bottlenecks, while aliging it with foundation recommendations.
With more high end processors having significantly higher specInts ( Cascade Lake refresh and now Ice Lake), the gap between effective cores and physical cores is getting wider. This change will ensure that while UVMs do take advantage of the better processor capabilities, CVM gets the cores it requires for optimal performance and doesn;t lead to latency issues.
Understandably and expectedly, this change,however, would increase the core requirement for the cluster (as against previous sizings). For an existing sizing, this can be observed, more predominantly while cloning, which would apply the new CVM minimums to the cloned scenario leading to increased utilization of the CPU dials. This , as a tradeoff, for higher CVM allocation for a better, more robust, performance optimal sizing scenario.