What kind of hardware recommendations do you have for using Voice Elements in a virtual machine?
CPU Performance is critical to HMP Elements' ability to send quality audio. Any type of slowdown will cause issues in the stream of audio that HMP Elements sends.
Because of this, you'll need to be aware of the relationship between physical and virtual cores on the host system and assign the appropriate number of virtual cores. For example:
HMP Elements can run 500 ports (with overhead) on a physical machine with a later model Intel processor running at around 2.6ghz with 2 cores.
You need to always keep in mind the actual physical resources that are assigned to the virtual machine.
For example, let's say you have a host system with 4 physical cores running at 2.6ghz, and you have 4 virtual machines running on that machine with each virtual machine assigned 2 cores. Each VM really only has 1/4 of the processor available. If all the virtual machines are under full load, HMP Elements may not have the processor resources it needs to keep up. This is a very simplistic view of things, but you should be aware of what else is running on the host machine, and assign resources to HMP Elements accordingly so that it has guaranteed processor resources.
In the past, we've had customers complain about jitter on a virtual machine, and say something like "Well, I dedicated 4 virtual cores to the machine", then after further research, we found that they were running dozens of VM's on a host with a quad core processor -- HMP Elements just didn't have the processor resources available from the host to keep up.
4GB should be sufficient for 300 ports and below, 8GB is recommended for higher port density.
In the past, we've had customers that shared a NIC card, and because other virtual machines were sending at the same time, the packets that HMP Elements were sending got delayed.
To ensure that you don't run into this situation, we recommend using SR-IOV with a shared NIC, or dedicating a NIC to the virtual machine that is running HMP Elements.
It is possible that you could run a shared NIC without SR-IOV and not encounter any issues (and we currently have several customers that seem to be doing this without issue at lower port densities), but for higher port densities, we just want to make sure the network card doesn't present any problems and either SR-IOV or a dedicated NIC are supported configurations.
Below is hardware that was able to run several virtual machines, each running several hundred ports of HMP Elements:
Intel Xeon E5-1650 v2 Six-Core Processor 3.5GHz 0GT/s 12MB LGA 2011 CPU, OEM x 1
Supermicro SuperServer SYS-5017R-MTRF LGA2011 400W 1U Rackmount Server Barebone System (Black) x 1
Seagate Constellation ES.3 ST1000NM0033 1TB 7200RPM SATA3/SATA 6.0 GB/s 128MB Enterprise Hard Drive (3.5 inch) x 2
Hynix DDR3-1600 8GB 1Gx72 ECC/REG CL11 Server Memory x 4
Update 5/25/2016 - Email to a Customer
Most of our clients run in VM's now using Hyper-V or VMWare.
For anything under 500 channels per server most modern servers will work fine. We have found the higher the GHz rating of the CPU the better that the number of cores. More RAM does not generally have an impact. The NIC is important and if you are running in a VM environment SR-IOV capability helps a lot.
We just ran a 1000 port load test to a VM with 4GB RAM, 4 Virtual processors, SR-IOV enabled, Windows 2012 R2 Server. We were running the VM on a Supermicro SYS-6028R-TRT with dual Xeon CPU E5-2640 v3 @ 2.60Ghz.
That machine would be way overkill for 400 ports, but we're running many VM's in addition to the 1000 ports on that machine.
We have found that more important than the actual machine that Voice elements is running on is the Router/Firewall that you are using. We have found that because of the high packets per second (PPS) required by RTP (100 pps per channel) many routers run out of CPU. This consideration is as important as the machine that VE is running on. We just tested a clustered Juniper SRX240H2 and at 500 ports it used up 52% of it's CPU. We found the max channels through that device was 800-900 channels even when the load was split between the two clustered devices.
I hope this helps.