Pexip Infinity Server Design Guide V33.a
Pexip Infinity Server Design Guide V33.a
Pexip Infinity Server Design Guide V33.a
Software Version 33
October 2023
Pexip Infinity Server Design Guide
Contents
Introduction 4
Summary of recommendations 5
Terminology 5
Management Node 6
Recommended host server specifications 6
Management Node performance considerations 6
Transcoding Conferencing Nodes 6
Recommended host server specifications 6
Proxying Edge Nodes 7
Recommended host server specifications 7
Special considerations for AMD EPYC systems 7
CPU microcode updates and performance 8
Low-level configuration 8
Hyper-Threading 8
Sub-NUMA clustering 8
BIOS performance settings 8
Network 8
Disk 8
Power 9
Introduction
This document describes the recommended specifications and deployment for servers hosting the Pexip Infinity platform, which apply
to both on-premises hardware and cloud deployments. It starts with a Summary of recommendations and some Example Conferencing
Node server configurations, which are supplemented by further details and explanations in the following Appendices:
l Appendix 1: Detailed server hardware requirements provides a more detailed breakdown of the minimum and recommended
hardware requirements for servers hosting the Management Node and Conferencing Nodes respectively.
l Appendix 2: Achieving high density deployments with NUMA provides details on NUMA architecture and how this impacts server
architecture and overall performance of Conferencing Nodes.
l Appendix 3: VMware NUMA affinity and hyperthreading is for administrators with advanced VMware knowledge. It explains how
to experiment with VMware NUMA affinity and make use of hyperthreading for Pexip Infinity Conferencing Node VMs, in order to
achieve up to 50% additional capacity.
l Appendix 4: Hyper-V NUMA affinity and hyperthreading is for administrators with advanced Hyper-V knowledge. It explains how to
experiment with Hyper-V NUMA affinity and make use of hyperthreading for Pexip Infinity Conferencing Node VMs, in order to
achieve up to 50% additional capacity.
Summary of recommendations
This section summarizes the terminology, recommended specifications and deployment guidelines for servers hosting the Pexip Infinity
platform. These apply to both on-premises hardware and cloud deployments.
Terminology
The table below provides descriptions for the terms used in this guide, in the context of a Pexip Infinity deployment.
Term Description
Processor The hardware within a computer that carries out the basic computing functions. It can consist of multiple cores.
Core One single physical processing unit. An Intel Xeon Scalable processor typically has between 8 and 32 cores, although
both larger and smaller variants are available.
RAM The hardware that stores data which is accessed by the processor cores while executing programs. RAM is supplied in
DIMMs (Dual In-line Memory Modules).
Channel A memory channel uses a dedicated interface to the processor, and can typically support up to 2 DIMMs. An Intel Xeon
Scalable series processor has 6-8 memory channels, older processors have fewer channels.
Virtual CPU The VM's understanding of how many CPU cores it requires. Each vCPU appears as a single CPU core to the guest
(vCPU) operating system.
When configuring a Conferencing Node, you are asked to enter the number of virtual CPUs to assign to it. We
recommend no more than one virtual CPU per physical core, unless you are making use of CPUs that support Hyper-
Threading.
NUMA node The combination of a processor (consisting of one or more cores) and its attached memory.
Management Node
* Sufficient for typical deployments of up to 30 Conferencing Nodes. For deployments with more than 30 Conferencing Nodes, you will
need to increase the number of cores and the amount of RAM on the Management Node. Please contact your Pexip authorized
support representative or your Pexip Solution Architect for guidance on Management Node sizing specific to your environment.
Low-level configuration
Hyper-Threading
l Hyper-Threading (also referred to as Hyper-Threading Technology), if supported, should always be left enabled by default.
l When Hyper-Threading is in use, we recommend that Conferencing Nodes are NUMA pinned to their sockets to avoid memory
access bottlenecks.
Sub-NUMA clustering
Sub-NUMA Clustering [SNC] should be turned off unless you are using the ultra-high density deployment model or you have been
specifically recommended otherwise by your Pexip authorized support representative.
Network
l Although the Conferencing Node server will normally not use more than 1-2 Mbps per video call, we recommend 1 Gbps network
interface cards or switches to ensure free flow of traffic between Pexip Infinity nodes in the same datacenter. We do not
recommend 100 Mbps NIC.
l Redundancy: for hypervisors that support NIC Teaming (including VMware), you can configure two network interfaces for
redundancy, connected to redundant switches (if this is available in your datacenter).
Disk
l Although Pexip Infinity will work with SAS drives, we strongly recommend SSDs for both the Management Node and Conferencing
Nodes. General VM processes (such as snapshots and backups) and platform upgrades will be faster with SSDs.
l Management Node and Conferencing Node disks should be Thick Provisioned.
l Pexip Infinity can absorb and recover relatively gracefully from short bursts of I/O latency but sustained latency will create
problems.
l The Management Node requires a minimum of 800 IOPs (but we recommend providing more wherever possible).
l A Conferencing Node requires a minimum of 250 IOPs (but we recommend providing more wherever possible).
l Deployment on SAN/NAS storage is possible, but local SSD is preferred. Interruption to disk access during software upgrades or
machine startup can lead to failures.
l Redundancy: when using our recommended RAID 1 mirroring for disk redundancy, remember to use a RAID controller supported
by VMware or your preferred hypervisor. The RAID controller must have an enabled cache. Most vendors can advise which of the
RAID controllers they provide are appropriate for your hypervisors.
Power
l Sufficient power to drive the CPUs. The server manufacturer will typically provide guidance on this.
l Redundancy: Dual PSUs.
Small deployments
Where the requirement is for a fixed number of ports overall or within a particular physical location and this requirement is for up to
90HD ports, transcoding for that deployment or location can easily be provided on a single socket.
Large conferences
Large conferences work best on large nodes. Any one conference can span only three nodes in a given logical location. The conference
takes one backplane on each node that it uses, so minimizing the number of nodes that a conference spans reduces this overhead.
In this scenario we would normally recommend building the largest individual nodes possible.
Pexip recommendations
Best all-rounder
We recommend 3rd- or 4th-generation Intel Xeon Scalable Series processors. The Gold line generally represents the best value in terms
of the number of ports provided for a given hardware spend. We like the Xeon Gold 6342 for its good 2.8GHz base clock speed and 24
physical cores. When optimally deployed it can offer 97-100HD per socket or around 195HD in a 1U 2-socket server.
The Xeon Gold 6348 and 6354 parts are slightly less capable, but still represent good options if the 6342 is not available. We have no
data for the Xeon Gold 6442Y, but expect its performance to be similar.
Less powerful hardware is available, but as a proportion of the server cost the savings are not large for a significant reduction in
capability. Where possible you should over-specify your hardware because forthcoming features of the Infinity platform may require
additional processing power.
For recyclers
Sometimes new hardware is not an option. If you need to use existing hardware, try to find a 6248R machine. When new, this was our
preferred hardware option and it is being used successfully to run Pexip Infinity by all sorts of organizations all over the world. Make
sure all 6 memory channels are populated on each socket and you should see 87-95HD per socket or around 180HD in a 1U 2-socket
server.
Cores / 2x24-core Ice Lake 2x44-core Sapphire Rapids 2x24-core Cascade Lake
Generation
Launched: Q2 2021 Launched: Q1 2023 Launched: Q1 2020
CPU 2 x Intel Xeon Gold 6342 2 x Intel Xeon Platinum 8458P 2 x Intel Xeon Gold 6248R
l 10nm lithography l Intel 7 lithography l 14nm lithography
l 24 core l 44 core l 24 core
l 2.8 GHz l 2.7 GHz l 3.0 GHz
l 36 MB cache l 82.5 MB cache l 35.75 MB cache
Storage l 500 GB total per server (to allow for snapshots etc.), including:
l 50 GB minimum per Conferencing Node
l SSD recommended
l RAID 1 mirrored storage (recommended)
Other processors
We are unable to test all processors on the market. We do maintain some data on real-world usage, but this is not always reliable as
we have no way of telling if the deployment has been performed according to our best practices. If you have a particular processor in
mind and would like an estimate of its capability, please contact your Pexip authorized support representativeyour Pexip Solutions
Architect or authorized support representative.
Server Any
manufacturer
Processor make Any We recommend 3rd- or 4th-generation Intel Xeon Any x86-64 processor which supports at
Scalable Series processors (Ice Lake / Sapphire Rapids) least the AVX instruction set. Most Intel
(see also
Gold 63xx/64xx for Transcoding Conferencing Nodes. Xeon Scalable Series and Xeon E5/E7-v3
Performance
l Earlier Intel Xeon Scalable Series processors and and -v4 processors are suitable.
considerations)
Intel Xeon E5/E7-v3 and -v4 series process are If a mixture of older and newer
also supported where newer hardware is not hardware is available, we recommend
available. Machines based on these architectures using the older or less capable hardware
will work well for Management and Proxying Edge for proxying nodes and the newest or
nodes, we recommend prioritizing the newest most powerful for transcoding nodes.
hardware for transcoding nodes.
l Other x86-64 processors from Intel and AMD that
support at least the AVX instruction set can be
used but are not recommended. Some features
are only available on underlying hardware that
supports at least the AVX2 instruction set.
Processor 64-bit
architecture
Processor speed 2.0 GHz 2.6 GHz (or faster) base clock speed if using Hyper- 2.0 GHz
Threading on 3rd-generation Intel Xeon Scalable Series
(Ice Lake) processors or newer.
l 2.8 GHz+ for older Intel Xeon processors where
Hyper-Threading is in use
l 2.3 GHz+ where Hyper-Threading is not in use
No. of vCPUs * Minimum 4† Minimum 4 vCPU per node Minimum 4 vCPU per node
Maximum 48 vCPU per node, i.e. 24 cores if using
Maximum 8 vCPU per node
Hyper-Threading
l Higher core-counts are possible on fast
processors: up to 56 vCPU has been tested
successfully
l Slow (under 2.3GHz) processors may require
lower core counts
Total RAM * Minimum 4 GB† 1 GB RAM per vCPU, so either: 1GB RAM per vCPU
(minimum 1 GB l 1 GB RAM per physical core (if deploying 1 vCPU
RAM for each per core), or
Management
l 2 GB RAM per physical core (if using Hyper-
Node vCPU)
Threading and NUMA affinity to deploy 2 vCPUs
per core).
RAM makeup Any All channels must be populated with a DIMM, see Any
Memory configuration below. Intel Xeon Scalable
series processors support 6 DIMMs per socket and
older Xeon E5 series processors support 4 DIMMs per
socket.
Hardware The host server must not be over-committed (also referred to as over-subscribing or over-allocation) in terms of either
allocation RAM or CPU. In other words, the Management Node and Conferencing Nodes each must have dedicated access to their
own RAM and CPU cores.
Storage space 100 GB SSD l 500 GB total per server (to allow for snapshots etc.), including:
required l 50 GB minimum per Conferencing Node
l SSD recommended
l RAID 1 mirrored storage (recommended)
Although Pexip Infinity will work with SAS drives, we strongly recommend SSDs for both the Management Node and
Conferencing Nodes. General VM processes (such as snapshots and backups) and platform upgrades will be faster with
SSDs.
Operating System The Pexip Infinity VMs are delivered as VM images (.ova etc.) to be run directly on the hypervisor. No OS should be
installed.
* This does not include the processor and RAM requirements of the hypervisor.
† Sufficient for typical deployments of up to 30 Conferencing Nodes. For deployments with more than 30 Conferencing Nodes, you will need
to increase the number of cores and the amount of RAM on the Management Node. Please contact your Pexip authorized support
representative or your Pexip Solution Architect for guidance on Management Node sizing specific to your environment.
Capacity
The number of calls (or ports) that can be achieved per server in a Pexip Infinity deployment will depend on a number of things
including the specifications of the particular server and the bandwidth of each call.
As a general indication of capacity: Servers that are older, have slower processors, or have fewer CPUs, will have a lower overall
capacity. Newer servers with faster processors will have a greater capacity. The use of NUMA affinity and Hyper-Threading can
significantly increase capacity.
Performance considerations
The type of processors and Hypervisors used in your deployment will impact the levels of performance you can achieve. Some known
performance considerations are described below.
AMD processors
We have observed during internal testing that use of AMD processors results in a reduction of capacity (measured by ports per core) of
around 40% when compared to an identically configured Intel platform. This is because current AMD processors do not execute
advanced instruction sets at the same speed as Intel processors.
AMD processors older than 2012 may not perform sufficiently and are not recommended for use with the Pexip Infinity platform.
Memory configuration
Memory must be distributed on the different memory channels (i.e. 6 to 8 channels per socket on the Xeon Scalable series, and 4
channels per socket on the Xeon E5 and E7 series).
There must be an equal amount of memory per socket, and all sockets must have all memory channels populated (you do not need to
populate all slots in a channel, one DIMM per channel is sufficient). Do not, for example, use two large DIMMs rather than four lower-
capacity DIMMs — using only two per socket will result in half the memory bandwidth, since the memory interface is designed to read
up from four DIMMs at the same time in parallel
The smaller Intel Xeon Scalable Possessors (Silver and Bronze series) can be safely deployed with 4 memory channels per socket, but
we do not recommend the Silver and Bronze series for most Pexip workloads.
Therefore for a dual socket Gold 61xx you need 12 identical memory DIMMs.
Therefore for a dual socket E5-2600 you need 8 identical memory DIMMs.
About NUMA
NUMA is an architecture that divides the computer into a number of nodes, each containing one or more processor cores and
associated memory. A core can access its local memory faster than it can access the rest of the memory on that machine. In other
words, it can access memory allocated to its own NUMA node faster than it can access memory allocated to another NUMA node on
the same machine.
The diagram (right) outlines the physical
components of a host server and shows the
relationship to each NUMA node.
Step-by-step guides
For instructions on how to achieve NUMA pinning (also known as NUMA affinity) for your particular hypervisor, see:
Deployment
As with most hypervisor features, we recommend that this is carried out by people who possess advanced skills with the relevant
hypervisor.
Each socket should be split into two equally-sized sub-NUMA nodes, 0 and 1. For node 0, use the entirety of the node for the
transcoding node; for node 1 reserve 2 vCPU for the hypervisor and use the rest of it for another transcoding node.
Example
An Intel Xeon Platinum 8360Y has 36 physical cores. With only a 2.4GHz base clock speed, it is not the ideal choice: a processor with a
higher clock speed will give better results.
Use cores 0-17 as sub-NUMA node 0 and cores 18-35 as sub-NUMA node 1. Cores 0-17 should be used as 36 vCPU Hyper-Threaded
transcoding node, and cores 18-34 should be used as a 34 vCPU transcoding node with core 35 reserved for the hypervisor.
In this case the 2-socket server produces around 280HD of capacity; a faster or larger processor could easily exceed 300HD per rack
unit.
Prerequisites
VMware NUMA affinity for Pexip Conferencing Node VMs should only be used if the following conditions apply:
l The server/blade is used for Pexip Conferencing Node VMs only, and the server will have only one Pexip Conferencing Node VM
per CPU socket (or two VMs per server in a dual socket CPU e.g. E5-2600 generation).
l vMotion is NOT used. (Using this may result in having two nodes both locked to a single socket, meaning both will be attempting
to access the same processor, with neither using the other processor.)
l You fully understand what you are doing, and you are happy to revert back to the standard settings, if requested by Pexip support,
to investigate any potential issues that may result.
Example server without NUMA affinity - allows for more mobility of VMs
Example server with NUMA affinity - taking advantage of hyperthreading to gain 30-50% more capacity per server
Overview of process
We will configure the two Conferencing Node VMs (in this example, an E5-2600 CPU with two sockets per server) with the following
advanced VMware parameters:
Conferencing Node A locked to Socket 0
l cpuid.coresPerSocket = 1
l numa.vcpu.preferHT = TRUE
l numa.nodeAffinity = 0
You must also double-check the flag below to ensure it matches the number of vCPUs in the Conferencing Node:
l numa.autosize.vcpu.maxPerVirtualNode
For example, it should be set to 24 if that was the number of vCPUs you assigned.
Note that if you are experiencing different sampling results from multiple nodes on the same host, you should also ensure that
Numa.PreferHT = 1 is set (to ensure it operates at the ESXi/socket level). See https://kb.vmware.com/s/article/2003582 for more
information.
1. Shut down the Conferencing Node VMs, to allow you to edit their settings.
2. Give the Conferencing Node VMs names that indicate that they are locked to a given socket (NUMA node). In the example below
the VM names are suffixed by numa0 and numa1:
3. Right-click the first Conferencing Node VM in the inventory and select Edit Settings.
4. From the VM Options tab, expand the Advanced section and select Edit Configuration:
5. At the bottom of the window that appears, enter the following Names and corresponding Values for the first VM, which should be
locked to the first socket (numa0):
o cpuid.coresPerSocket = 1
o numa.vcpu.preferHT = TRUE
o numa.nodeAffinity = 0
It should now look like this in the bottom of the parameters list:
It is very important that you actually set numa.nodeAffinity to 1 and not 0 for the second node. If both are set to 0, you will
effectively only use numa node 0, and they will fight for these resources while leaving numa node 1 unused.
Increasing vCPUs
You must now increase the number of vCPUs assigned to your Conferencing Nodes, to make use of the hyperthreaded cores.
(Hyperthreading must always be enabled, and is generally enabled by default.)
Ensure that the server actually has 24 GB of RAM connected to each CPU socket. Since all four memory channels should be populated
with one RAM module each, you will normally require 4 x 8 GB per CPU socket.
Reboot
Finally, save and boot up your virtual machines. After about 5 minutes they should be booted, have performed their performance
sampling, and be available for calls.
An unsuccessful run, where VMware has split the Conferencing Node over multiple NUMA nodes, would return the following warning
in addition to the result of the performance sampling:
If you have followed the steps in this guide to set NUMA affinity correctly and you are getting the warning above, this could be due to
another VMware setting. From VMware, select the Conferencing Node and then select Edit Settings > Options > General >
Configuration Parameters...). The numa.autosize.vcpu.maxPerVirtualNode option should be set to your "magic number". For
example, 24 is our "magic number" - the number of logical processors, or vCPUs, assigned in our example.
If this option is set to anything lower, e.g. 8, 10 or 12, VMware will create two virtual NUMA nodes, even if locked on one socket.
BIOS settings
Ensure all BIOS settings pertaining to power saving are set to maximize performance rather than preserve energy. (Setting these to an
energy-preserving or balanced mode may impact transcoding capacity, thus reducing the total number of HD calls that can be
provided.) While this setting will use slightly more power, the alternative is to add another server in order to achieve the increase in
capacity, and that would in total consume more power than one server running in high performance mode.
The actual settings will depend on the hardware vendor; see BIOS performance settings for some examples.
A quick way to verify that BIOS has been set appropriately is to check the hardware's Power Management settings in VMware (select
the host then select Configure > Hardware > Power Management). In most cases, the ACPI C-states should not be exposed to VMware
when BIOS is correctly set to maximize performance.
If the ACPI C-states are showing in VMware (as shown below), the BIOS has most likely not been set to maximize performance :
When BIOS has been correctly set to maximize performance, it should in most cases look like this:
If your server is set to maximize performance, but VMware still shows ACPI C-states, change it to balanced (or similar), and then
change back to maximize performance. This issue has been observed with some Dell servers that were preconfigured with
maximize performance, but the setting did not take effect initially.
Prerequisites
NUMA affinity for Pexip Conferencing Node VMs should only be used if the following conditions apply:
l You are using Hyper-V as part of a Windows Server Datacenter Edition (the Standard Edition does not have the appropriate
configuration options).
l The server/blade is used for Pexip Conferencing Node VMs only, and the server will have only one Pexip Conferencing Node VM
per CPU socket (or two VMs per server in a dual socket CPU e.g. E5-2600 generation).
l Live Migration is NOT used. (Using this may result in having two nodes both locked to a single socket, meaning both will be
attempting to access the same processor, with neither using the other processor.)
l You fully understand what you are doing, and you are happy to revert back to the standard settings, if requested by Pexip support,
to investigate any potential issues that may result.
Example server without NUMA affinity - allows for more mobility of VMs
Example server with NUMA affinity - taking advantage of hyperthreading to gain 30-50% more capacity per server
Example hardware
In the example given below, we are using a SuperMicro SuperServer with dual Intel Xeon E5-2680-v3 processors, 64GB RAM, and 2 x
1TB hard drives.
On this server:
l we deploy one Conferencing Node VM per processor/socket, so two Conferencing Nodes in total
l we disable NUMA spanning, so each Conferencing Node VM runs on a single NUMA node/processor/socket
l each processor has 12 physical cores
l we use hyperthreading to deploy 2 vCPUs per physical core
l this gives us 24 vCPUs / 24 threads per Conferencing Node
l therefore we get 48vCPUs / 24 threads in total on the server.
1. From within Hyper-V Manager, right-click on the server and select Hyper-V Settings...:
2. From the Server section, select NUMA Spanning and disable Allow virtual machines to span physical NUMA nodes. This ensures
that all processing will remain on a single processor within the server:
1. From within Hyper-V, select the Conferencing Node VM, and then select Settings > Hardware > Processor > NUMA.
2. Confirm that only 1 NUMA node and 1 socket are in use by each Conferencing Node VM:
An unsuccessful run, where Hyper-V has split the Conferencing Node over multiple NUMA nodes, would return the following warning
in addition to the result of the performance sampling:
2015-04-06T17:42:17.084+00:00 softlayer-lon02-cnf02 2015-04-06 17:42:17,083 Level="WARNING" Name="administrator.system"
Message="Multiple numa nodes detected during sampling" Detail="We strongly recommend that a Pexip Infinity Conferencing Node is
deployed on a single NUMA node"
2015-04-06T17:42:17.087+00:00 softlayer-lon02-cnf02 2015-04-06 17:42:17,086 Level="INFO" Name="administrator.system"
Message="Performance sampling finished" Detail="HD=21 SD=42 Audio=168"
Moving VMs
When moving Conferencing Node VMs between hosts, you must ensure that the new host has at least the same number of cores. You
must also remember to disable NUMA spanning on the new host.
BIOS settings
Ensure all BIOS settings pertaining to power saving are set to maximize performance rather than preserve energy. (Setting these to an
energy-preserving or balanced mode may impact transcoding capacity, thus reducing the total number of HD calls that can be
provided.) While this setting will use slightly more power, the alternative is to add another server in order to achieve the increase in
capacity, and that would in total consume more than one server running in high performance mode.
The actual settings will depend on the hardware vendor; see BIOS performance settings for some examples.