CDN Setup¶
This document is a guide for setting up CDN benchmark environment, including Hardware platform and Software configuration on network, storage and QAT.
HW Prerequisites¶
-
Setup 2 or 3 servers:
-
3-node: one client node; 2 CDN servers: worker-1, worker-2.
- 2-node: one client node; 1 CDN server: worker-1.
- All servers support at least
100Gnetwork bandwidth, e.g. 1x 100G NIC - Connect all servers through a switch with at least
100Gnetwork capacity. - CDN server requires 4 NVMe disks, each has at least
1.8Tsize capacity. And it's better to support PCIe Gen4 x4 width. - Please consider NUMA balance for NVMe drive and NIC setup, this is important for performance tests.
flowchart TD;
subgraph 3-node;
subgraph Server_cluster;
worker_1;
worker_2;
end
100G_switch[[100G_switch]]-.-Client_Node;
100G_switch[[100G_switch]]-.-worker_1;
100G_switch[[100G_switch]]-.-worker_2;
end
flowchart TD;
subgraph 2-node;
subgraph Server_cluster;
worker_1;
end
100G_switch[[100G_switch]]-.-Client_Node;
100G_switch[[100G_switch]]-.-worker_1;
end
OS configuration¶
- Install Ubuntu 22.04 server-version or latest version on CDN server.
- Check the NVMe driver and NIC driver are all loaded and setup fine.
- Setup network proxies if needed and append server (e.g. 192.168.2.200) and client (e.g. 192.168.2.100) 100G NIC IP to your
no_proxyon client and server.
K8S Labels configuaration¶
Please finish the section Network configuration, Storage configuration, or QAT hardware configuration, then label the corresponding nodes.
Command examples:
- Label:
- Unlabel:
CDN server worker-1:
For ICX,
HAS-SETUP-DISK-SPEC-1=yesHAS-SETUP-NIC-100G=yes
For SPR,
HAS-SETUP-DISK-SPEC-1=yesHAS-SETUP-NIC-100G=yesHAS-SETUP-QAT=yesHAS-SETUP-HUGEPAGE-2048kB-4096=yes
CDN server worker-2:
HAS-SETUP-NIC-100G=yes
Network configuration¶
- Specify 100G IP for servers. These are defined in validate.sh, please pass the real IP as parameters before testing.
| client | worker-1 | worker-2 |
|---|---|---|
| 192.168.2.100 | 192.168.2.200 | 192.168.2.201 |
- modify in
validate.sh -
or pass with
ctest.sh -
Test the network speed after setting up
-
On worker-1
- On client node
Storage configuration¶
This should be done on worker-1.
-
Prepare cache disk for cache-nginx pod. nvme?n1 means repeat 4 times for 4 disks.
-
Check NVMe drives and Partition drives
-
Create a primary partition
/dev/nvme?n1p1- If disk is lower than 2 TB
- If disk size is higher than 2 TB
-
Change drive attributes
-
Format drives as ext4 (or xfs):
-
Create cache mountpoints and mount to four pairs
-
Add below content into
/etc/fstabto auto-mount after reboot -
Modify storage IO schedule method from default
mq-deadlinetononeon -
Check the partition status
QAT hardware configuration¶
Set up QAT Hardware for SPR worker-1, please refer to setup-qat-in-tree.
Monitor runtime performance¶
- Use
sarto monitor runtime network interface performance
- Use
iostatto monitor drive IO performance.
Others¶
-
Install Intel E810-C CVL Ethernet Adaptor Driver
-
Confirm the NIC model, pls run below command line:
In this environment, Intel 100G E810-C NIC is used for CDN NGINX testing.lspci | grep Eth 17:00.0 Ethernet controller: Intel Corporation Ethernet Controller X710 for 10GBASE-T (rev 02) 17:00.1 Ethernet controller: Intel Corporation Ethernet Controller X710 for 10GBASE-T (rev 02) 4b:00.0 Ethernet controller: Intel Corporation Ethernet Controller E810-C for QSFP (rev 02) 4b:00.1 Ethernet controller: Intel Corporation Ethernet Controller E810-C for QSFP (rev 02) -
Install the kernel development package
To compile the driver on some kernel/arch combinations, you may need to install the kernel development package which has the same version with kernel. you can firstly try to install with:
- Intel E810 series devices Ethernet Adapter Driver Installation - Download the latest E810 series devices firmware update from https://www.intel.com/content/www/us/en/download/19626/non-volatile-memory-nvm-update-utility-for-intel-ethernet-network-adapters-e810-series-linux.html. - Download the latest E810 series devices driver from https://www.intel.com/content/www/us/en/download/19630/intel-network-adapter-driver-for-e810-series-devices-under-linux.html. - Build and install the NIC driver: