**************************** Robin Performance Features **************************** 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. 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. 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): .. code-block:: text robin-pqos setclass 0= 1= 2=… **Example:** .. code-block:: text robin-pqos setclass 0 0=0x7 1=0x78 2=0x780 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: .. code-block:: text robin-pqos apply **Example:** .. code-block:: text robin-pqos apply 0 0x7 0,40,1,41 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 .. code-block:: yaml :emphasize-lines: 7 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 View CAT profiles ^^^^^^^^^^^^^^^^^ Run the following command to view the CAT profile details: .. code-block:: text robin-pqos show