---
title: 视频流云手机密度测试
description: "1. 从DemoVideoEngine.tar.gz中解压cfct_config配置文件。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/240RC2/armnative/kunpengcpsvideo_20_0072.html
sourcePath: /source/zh/kunpengboostkithistory/240RC2/armnative/kunpengcpsvideo_20_0072.html
indexId: 719b062e0d8b6fc379ffc88a627123c38b153865579c7ad03f52dc0832660a7579
---
# 视频流云手机密度测试

1. 从DemoVideoEngine.tar.gz中解压cfct_config配置文件。
  1 2 3 cd /home/kbox_video/ tar -xvf DemoVideoEngine.tar.gz cfct_config chmod 644 cfct_config

2. 核对BIOS配置参数及GPU工作模式，请参见配置BIOS和配置GPU工作模式。
3. 通过BMC调整服务器的风扇转速百分比为100%。

  a. SSH登录BMC。
    1 ssh {BMC用户名}@{BMC IP地址}

  b. 将风扇模式设置为手动调速。
    1 ipmcset -d fanmode -v 1 0

    回显信息如下：

    1 2 3 Set fan mode successfully. Current Mode: manual Time out : 100000000 seconds

  c. 调整风扇转速百分比为100%。
    1 ipmcset -d fanlevel -v 100

    回显信息如下：

    1 2 3 Set fan level successfully. Current Mode: manual, timeout 100000000 seconds. Global Manual Fan Level: 100%

  d. 查询风扇状态。
    1 ipmcget -d faninfo

    回显信息如下：

    1 2 3 Current Mode: manual, timeout 100000000 seconds. Manual fan level: Fan1: 100, Fan2: 100, Fan3: 100, Fan4: 100

4. GPU驱动进程绑定到空闲核，网卡中断绑定空闲核请参见《Kbox云手机容器 特性指南(https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/240RC2/armnative/kunpengcpskbox_20_0050.html)》中的“网卡绑定CPU”章节。该操作每次重启服务器后都需要执行。
  a. 查询GPU进程号。
    1 ps -ef |grep gfx

    回显信息如下： 1 2 root 1703 2 1 Aug31 ? 07:31:36 [gfx_0.0.0] root 1739 2 1 Aug31 ? 09:13:08 [gfx_0.0.0]

  b. 将第一个GPU进程绑定至空闲核。
    1 taskset -pc 32-33 1703

    回显信息如下： 1 2 pid 1703's current affinity list: 0-127 pid 1703's new affinity list: 32,33

  c. 将第二个GPU进程绑定至空闲核。
    1 taskset -pc 64-65 1739

    回显信息如下： 1 2 pid 1739's current affinity list: 0-127 pid 1739's new affinity list: 64,65

    若查询出4个GPU驱动进程，则将前2个驱动进程绑到32-33核，后2个驱动进程绑到64-65核。

5. 单队列网卡中断散列。对单队列网卡可以使用RPS将中断分散到多个core处理，避免软中断集中到一个core导致该core软中断过高形成性能瓶颈。具体的方法是输入如下内容，本文以网卡enp125s0f1为例进行说明。以下命令将该网卡设备中断绑定到前八个CPU核，同时优化了其他RPS设置，使网卡性能在该场景达到最优。该操作每次重启服务器后都需要执行。
  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

6. 关闭NUMA均衡以及SWAP。该操作每次重启服务器后都需要执行。
  1 2 echo 0 > /proc/sys/kernel/numa_balancing swapoff -a

7. 将cfct_config配置文件中“CPU_BIND_MODE”字段设置为如表1所示值（“1”表示绑定NUMA的绑核方式）。
**表1 测试规格与CPU_BIND_MODE值对应关系**

| 测试规格 | CPU\_BIND\_MODE |
| --- | --- |
| 7260+W6800密度测试72路，地铁跑酷，1080p@60fps | 0 |


8. 修改cfct_config配置文件中的MODE0_CPU0、MODE0_CPU1、MODE0_CPU2、MODE0_CPU3，将绑核方式均修改为6核一路，此处以MODE0_CPU0为例。

```
MODE0_CPUS0=("2,3,4,5,6,7" "8,9,10,11,12,13" "14,15,16,17,18,19" "20,21,22,23,24,25" "26,27,28,29,30,31")
```


9. 使用cfct_video脚本启动多路容器，此处启动容器的数量需要根据7中表1具体测试规格决定，这里以72路为例，依次输入如下命令。进行多路测试时，需要先登录一路游戏，进入新手关（首次开始游戏后不做任何操作即可），进行对应的画质设置后退出登录，并按照制作基础数据卷中介绍的方法制作基础数据卷，保证后续启动的容器均为对应画质。

  a. 启动云手机。
    1 ./cfct_video start 1 72

  b. 打开地铁跑酷游戏。
    1 ./cfct_video start_game 1 72

  c. 截图。
    1 ./cfct_video screencap 1 72

待截图完成后，将截图下载至本地。若看到截图全为地铁跑酷新手关，即证明已成功启动。
10. 测试客户端连接服务端后的性能。

  a. 在本机或另一台服务器上解压压测工具VideoClientEmulator.tar.gz。
    1 2 tar -xvpf VideoClientEmulator.tar.gz cd VideoClientEmulator

  b. 执行以下命令连接服务端。
    如果在本机测试，IP地址可以使用127.0.0.1，命令示例如下。./test.sh connect命令后参数依次为服务器IP地址、开始端口、结束端口。 1 ./test.sh connect 127.0.0.1 8001 8036

    确认工具回显中客户端数量显示正确，例如： 1 2 [INFO] checking current client num ... [INFO] current client process num: =36

  c. 执行以下命令开始显示并收集帧率数据。
    命令示例如下。./test.sh start命令后参数依次为服务器IP地址、开始端口、结束端口、收集时间。 1 ./test.sh start 127.0.0.1 8001 8036 900

    15分钟倒计时结束后会生成类似下图的帧率数据分析报告，并在测试目录下生成记录了单路数据的csv文件。

11. 收集数据。

  a. 请参见    视频流引擎
获取native_perf_tools_quadra.tar.gz并解压，进入“native_perf_tools”文件夹。
  b. native_perf工具依赖nmon工具，如果没有安装需要进行安装。

    - Ubuntu系统下可以使用apt命令安装。
      1 apt install nmon

    - openEuler系统下可以使用yum命令安装。
      1 yum install nmon

  c. 依次执行以下命令，收集15min数据。“{prefix_number}”为存储采集数据文件夹的前缀，下图中以“60”为例。
    1 2 source env.sh ./native_get_perf_data.sh all {prefix_number}

12. 收集完成后，将以下几个数据文件下载至本地，解析后生成测试报告。

  a. 服务端“native_perf_tools”文件夹下的“log”文件夹，其中包含了服务端的性能数据，如CPU、GPU、编码卡等性能数据。
  b. 真机客户端的“/sdcard/log”目录下的client.log，是客户端的日志，包括解码帧率、网络Lag等数据。
  c. 将上述的文件和文件夹放到同一个路径下，此处以“D:\tmp”为例。
    下载ExtractingData_quadra.rar并解压，进入“ExtractingData”
    文件夹下，输入：

```
python parse.py D:\tmp
```


    “D:\tmp”下会生成一个“output”文件夹，里面有相应的表格和图片。
