Practical Implementation Guidelines#
To meet these requirements, administrators should implement the following optimisations:
CPU Optimisation#
- Pin CPU cores to the PBX VM to avoid hypervisor scheduling conflicts.
- Ensure PBX CPU cores are never used for host system interrupts (network, storage, or media processing).
- Monitor CPU utilisation per core and keep it below 90% per 5 ms frame or 50% per averaged second.
- Disable CPU power-saving features (e.g., Intel SpeedStep, AMD Cool’n’Quiet) to maintain consistent performance.
- Use a performance CPU governor instead of an on-demand or power-saving mode.
- Use only performance cores for PBX VM.
Virtual Machine Isolation#
- Avoid overcommitting CPU resources across multiple VMs, even when dedicated CPU cores are assigned to the PBX, the other CPU cores should not operate at 100% for any amount of time.
- Ensure other VMs do not generate high CPU loads on the same host.
- If other workloads must run, schedule resource-intensive tasks (backups, disk indexing) outside peak call hours.
Network Optimisation#
- Use server-grade NICs with hardware offloading for TCP/IP and UDP checksum, RSS and TSS.
- Prefer SR-IOV or PCI passthrough to minimise virtualisation overhead.
- Assign a dedicated NIC for VoIP traffic to separate it from other network activity.
- Configure QoS (Quality of Service) on the network to prioritise VoIP traffic over other data.
Storage and Disk I/O Considerations#
- Use dedicated RAID controllers with battery backed writecaching for spinning disks.
- Ensure that storage workloads (e.g., backups, logging) do not impact PBX real-time processing.
- Prefer NVME SSDs for VM storage to reduce I/O latency.
Time Synchronisation#
- Disable time synchronisation features between host and the PBX VM.
- Make sure TSC (CPU instruction) is available in the PBX VM and not influenced by other VMs.
- If multiple CPUs are available in a host, only one should be assigned to the PBX. In case of Threadripper only cores from the same NUMA should be assigned to the PBX.
Hypervisor and Host System Configuration#
- Disable live migration (e.g., vMotion) for the PBX VM to prevent processing interruptions.
- Assign dedicated network and storage interrupts to cores not used by the PBX VM.
- Continuously monitor system performance (CPU, network and jitter metrics) to detect and address real-time processing issues.