24. Robin Performance Features

24.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.

24.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.

24.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

24.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

24.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

24.1.5. View CAT profiles

Run the following command to view the CAT profile details:

robin-pqos show