Hypervisor
The virtual machine host, or hypervisor, provides the virtualized hardware under which the guest operating system runs. The hypervisor chosen can influence the performance of your telephony application.
Generally speaking, there are two high-level categories of virtual machine hypervisors: Type 1, or bare-metal; and Type 2, or hosted.
A Type 1 hypervisor is one which runs directly on the host server’s hardware. It manages the hardware directly and allocates its resources to its guest virtual machines. A hypervisor of this type is able to reserve resources for specific virtual machines; in some cases, hardware can be passed through directly to a guest. Examples of Type 1 hypervisors include Microsoft Hyper-V Server and VMware vSphere/ESXi.
Type 2 hypervisors are those which themselves run atop a host operating system. They do not have exclusive control of the hardware in the way that Type 1 hypervisors do and do not reserve dedicated resources to their guest virtual machines. Examples of Type 2 hypervisors include Microsoft Hyper-V (when running on Windows), Parallels, Oracle VirtualBox, and VMware Workstation or Fusion.
Because of their ability to dedicate resources, pass through hardware, and to provide more deterministic performance to guests, we generally recommend Type 1 hypervisors be used for Voice Elements virtual machines. However, for low-density applications, Type 2 hypervisors can be used.
CPU
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.
Memory
4GB should be sufficient for 300 ports and below, 8GB is recommended for higher port density.
Network
In the past, we’ve had customers that shared a network interface card between multiple virtual machines; 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.
Another important network element to consider is the router. The router chosen needs to be able to handle the number of packets per second (PPS) generated by your VoIP traffic. Please see this article for more detailed information on calculating the number of PPS required for your application.
Example Configuration
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
This hardware successfully completed a 1000 port stress test; this server would be overkill for many applications, but would leave resources for running other virtual machines without interfering with the Voice Elements Platform:
- Dual Xeon E5-2640v3 at 2.60 GHz
- Supermicro SYS-6028R-TRT
- VM with 4 virtual processors and 4GB RAM reserved
- NIC passed through (SR-IOV)
Summary
The Voice Elements Platform is very efficient and can run on a wide variety of hardware and virtual machine combinations. For higher-density applications, prefer modern server CPUs; higher clock speeds can often have more of a performance impact than higher core counts, beyond four cores.
Particularly with high-density applications of greater than 500 ports, prefer to use a Type 1 hypervisor such as Microsoft Hyper-V Server or VMware EXSi/vSphere and dedicate 4 cores and 4-8GB RAM to the VM.
Ensure the router you choose for your voice traffic can handle the network traffic your VM(s) will generate; voice traffic can result in large number of small packets, so the packets per second rating of your router will be important.
Still have questions? Contact us at support@inventivelabs.com.