22. Robin Performance Features¶
22.1. Intel Cache Allocation Technology Support for vDU Pods¶
Robin CNP supports the Intel Cache Allocation Technology (CAT) to deploy 4G vDU (Virtual Distributed Unit) Pods for single non-uniform memory access (NUMA) node host for 4G Virtual Network Functions (VNFs) and Cloud-Native Network Functions (CNFs).
The Intel CAT support enables vDUs in a 4G environment to access the CPUs on the host using dedicated cache lines/ways. When you deploy a vDU Pod using Robin CNP, the vDUs get a dedicated number of cache ways configured on the host to access the CPUs.
You can use the following annotation in your Pod YAML file for requesting cache ways from the CPU for vDUs.
robin.runtime.num_cache_ways": "4"
Note
You must use the annotation at the Pod level only.
Whatever CPU set that kubelet allocates for the container, Robin applies the respective Class of Profile (CoS) profile for that CPU set.
Limitations
The annotation requesting for cache ways is supported only for Helm-based applications.
You can create only two vDUs per host.
A Pod must have one replica only.
22.1.1. Configuring CAT support for vDU Pods¶
Configuring your setup to use CAT support for vDU Pods involves:
Creating CAT profiles
Applying the profiles to CPUs.
22.1.2. Create CAT profile (classes) on NUMA node zero¶
To use CAT support on Robin CNP, you must create CAT profiles (classes) on NUMA node zero (0) of your host. After you create classes, you can assign these classes to the CPUs.
Prerequisites
Based on the hardware server type, you need to create 3 classes on NUMA node 0:
0x7 – last 3 caches ways
0x78 – middle 4 caches ways
0x780 -first 4 cache ways
Run the following command to create CAT profiles (classes):
robin-pqos setclass <numa_id> 0=<mask1> 1=<mask2> 2=<mask3>…
Example:
robin-pqos setclass 0 0=0x7 1=0x78 2=0x780
22.1.3. Apply CAT profiles to CPUs¶
You must have the CAT profiles created before applying the profiles to CPUs.
Run the following command to apply the CAT profiles to CPUs:
robin-pqos apply <numa_id> <mask1> <cpuset>
Example:
robin-pqos apply 0 0x7 0,40,1,41
22.1.4. Setting Cache ways in POD YAML file¶
You can use the robin.runtime.num_cache_ways": "4"
annotation to set cache ways in the Pod YAML file.
The following is the sample Pod YAML file with
apiVersion: v1
kind: Pod
metadata:
name: cat1
namespace: default
annotations:
"robin.runtime.num_cache_ways": "4"
spec:
tolerations:
- effect: NoSchedule
key: node-role.kubernetes.io/master
containers:
- name: test
image: robinsys/virtlauncher:centos8
command: ["sleep", "infinity"]
resources:
requests:
cpu: 8
memory: 100Mi
limits:
cpu: 8
memory: 100Mi
22.1.5. View CAT profiles¶
Run the following command to view the CAT profile details:
robin-pqos show