Socket - is a physical connector on a computer motherboard that connects to a single physical CPU. Some motherboards have multiple sockets and can connect multiple multicore processors (CPUs).
Core - a core contains a unit containing an L1 cache and functional units needed to run applications. Cores can independently run applications or threads. One or more cores can exist on a single CPU.
vCPU - Virtual Core (Hyperthreading) is a logical split into 2 of a single physical core from above.
What is vCPU?
A vCPU stands for virtual central processing unit. Each vCPU is seen as a single physical CPU core by the VM’s operating system. If the host machine has multiple CPU cores at its disposal, then the vCPU is actually made up of a number of time slots across all of the available cores, thereby allowing multiple VMs to be hosted on a smaller number of physical cores.
1 vCPU in VMware - seen in Windows as 1 Virtual Core
What is the equivalent of 1vCPU in physical CPU terms?
A general estimation is that 1 vCPU = 1 Physical CPU Core. However, this is not entirely correct, as the vCPU is made up of time slots across all available physical cores, so in general 1vCPU is actually more powerful than a single core, especially if the physical CPUs have 8 or more cores. (https://www.hyve.com/what-is-a-vmware-vcpu)
Best practices for creating VMs for Cyara
- Never assign more resources than a VM can use (example Service Insite should only use 1 vCPU or Cyara storage)
- Unused or unnecessary virtual hardware devices can impact performance and should be disabled.
- ESXi hosts that used for CE Next VMs only should never be CPU oversubscribed and actually slightly undersubscribed.
- ESXi host that hosts a mix of components can have CPUs oversubscribed to a sensible limit as a rule of thumb no more than 30% of real available resources
- Never mix User VMs and Services VMs on the same ESXi host
- FYI: ESXi host that run user VMs can be much more oversubscribed
- Must use separate NICs for RTP and SIP - Do not rely on QoS setup only!
- This is because ESXi host can batch NIC operations increasing latency
- For high load CENs separate NICs are a must. - Further benchmarking required to determine the exact impact on sharing NICs across all VMs on a single host…..
- CENext VMs must have CPU shares set to High (see below)
- CENext VMs must set Memory shares to High
- CEN VMs in Cruncher configuration must use specific HDD for recordings and temp folders
- The same type of HDD must be used for Cyara Storage
VMWare Multiple Sockets vs Single Socket
It is claimed that VMs perform better when configured with a single socket and multiple cores but not exceeding the number of physical cores on the host.
The following configuration is recommended for 8vCPU CENext VM:
The configuration below is not recommended:
Note: It was verified and confirmed that a single Socket with Multiple cores (not exceeding physical ones), performs better.
In our last benchmarking CEN on AWS servers we noted about 20% performance improvement and attributed it to slightly faster CPU on AWS. However after finding that a single socket on a smaller VMs is faster we have gone back and confirmed that all AWS machines use a single Socket with Multiple cores.
The only components that could be an exception are IIS and SQL, however to be able to confirm the difference more tests are required.
There are some good advices related to decision making fo number of Sockets and Cores per socket in hese links https://blogs.vmware.com/performance/2017/03/virtual-machine-vcpu-and-vnuma-rightsizing-rules-of-thumb.html
Cyara Benchmark Tests
Single ESXi host for Cruncher Load Test
At ‘full load’ (could do 1000 more lite calls) this had about 29 GHz used out of 38.38 GHz on the Host.
All tests performed very well and confirmed the statement at the beginning 1 vCPU is actually more powerful than 1 Virtual core of 1 Physical Core.
So in summary this single ESXi host can run all of Cyara platform providing 500 Cruncher and 1500 Lite ports
Single ESXi Host Cruncher Lite Load Test
This configuration ran Cruncher Lite load test with 1500 concurrent ports at 50 CAPs all machines hosted on a single ESXi host, the overall CPU usage was 60-70%. All CEN performance stats were within a perfect range.
To summarise this config on a single ESXi host can handle 4500 Lite ports.
If this host would host only CENs it would probably be able to handle 4 CENs with a total of 6000 Lite ports.
More configuration options in a single ESXi server to follow as we test more combinations.