Testing the Video Stream Cloud Phone Density
- Extract the cfct_config file from the DemoVideoEngine.tar.gz package.
1 2 3
cd /home/kbox_video/ tar -xvf DemoVideoEngine.tar.gz cfct_config chmod 644 cfct_config
- Check BIOS configuration parameters and the GPU working mode. For details, see Configuring the BIOS.
- Use the BMC to adjust the server fan speed percentage to 100%.
- Log in to the BMC over SSH.
1ssh {BMC_user_name}@{BMC_IP_address}
- Set the fan speed adjustment mode to manual.
1ipmcset -d fanmode -v 1 0
The command output is as follows:
1 2 3
Set fan mode successfully. Current Mode: manual Time out : 100000000 seconds
- Set the fan speed percentage to 100%.
1ipmcset -d fanlevel -v 100
The command output is as follows:
1 2 3
Set fan level successfully. Current Mode: manual, timeout 100000000 seconds. Global Manual Fan Level: 100%
- Query the fan status.
1ipmcget -d faninfo
The command output is as follows:
1 2 3
Current Mode: manual, timeout 100000000 seconds. Manual fan level: Fan1: 100, Fan2: 100, Fan3: 100, Fan4: 100
- Log in to the BMC over SSH.
- Bind the GPU driver processes and NIC interrupts to idle cores. For details, see "Installing the GPU Driver" and "Binding NICs to CPUs" respectively in the Kbox Cloud Phone Container Feature Guide. Perform this operation each time you restart the server.
- Scatter single-queue NIC interrupts. For a single-queue NIC, the RPS service can be used to distribute interrupts to multiple cores. This prevents performance bottlenecks caused by a large number of software interrupts centralized to a single core. The method is as follows. NIC enp125s0f1 is used as an example. The following commands bind the NIC interrupts to the first eight CPU cores and tune other RPS settings to optimize the NIC performance in this scenario. Perform this operation each time you restart the server.
1 2 3 4 5
systemctl stop irqbalance.service systemctl disable irqbalance.service echo ff000000 > /sys/class/net/enp125s0f1/queues/rx-0/rps_cpus echo 4096 > /sys/class/net/enp125s0f1/queues/rx-0/rps_flow_cnt echo 32768 > /proc/sys/net/core/rps_sock_flow_entries
- Disable NUMA balancing and SWAP. Perform this operation each time you restart the server.
1 2
echo 0 > /proc/sys/kernel/numa_balancing swapoff -a
- Set the CPU_BIND_MODE field in the cfct_config file to the value in Table 1 (1 indicates NUMA binding).
- When using the cfct_video script to start multiple containers, decide the number of containers to be started based on Table 1 in 7. The following uses 120 as an example. Run the following commands in sequence.
To perform a multi-channel test, log in to the game for one channel. At the novice level (do not perform any operations after you start the game for the first time), set the image quality and log out. Refer to Creating a Base Data Volume and create a base data volume to ensure that the image quality of the containers started later are consistent.
- Start cloud phones.
1./cfct_video start 1 120
- Open Honor of Kings.
1./cfct_video start_game 1 120
- Capture screenshots.
1./cfct_video screencap 1 120
After screen capture is complete, download the screenshots to the local host. If all screenshots are login pages of Honor of Kings, the startup is successful.
- Start cloud phones.
- Test the performance after the client is connected to the server.
- Decompress the pressure test tool VideoClientEmulator.tar.gz on the local host or another server.
1 2
tar -xvpf VideoClientEmulator.tar.gz cd VideoClientEmulator
- Connect to the server.If the test is performed on the local host, the IP address can be 127.0.0.1. An example command is as follows (36 channels for example). The parameters that follow ./test.sh connect are the server IP address, start port, and end port in sequence.
1./test.sh connect 127.0.0.1 8001 8036
Check whether the number of clients displayed in the output is correct. For example:1 2
[INFO] checking current client num ... [INFO] current client process num: =36
- Display and collect frame rate data.The following command is an example. The parameters that follow ./test.sh start are the server IP address, start port, end port, and collection duration in sequence.
1./test.sh start 127.0.0.1 8001 8036 900
After the 15-minute countdown, an analysis report of the frame rate data is generated, which is similar to the following figure. A CSV file that records single-channel data is generated in the test directory.

- Decompress the pressure test tool VideoClientEmulator.tar.gz on the local host or another server.