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

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/2300/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+W6600密度测试60路，原神登录界面高画质，1080p@30fps | 1 |


  若测试的是表1中7260+W6600密度测试60路的规格，请确认已执行W6600密度测试配置修改步骤。

8. 使用cfct_video脚本启动多路容器，此处启动容器的数量需要根据7中表1具体测试规格决定，这里以60路为例，依次输入如下命令。测试高画质原神登录界面需要在游戏中登录账号并进行设置。进行多路测试时，需要先登录一路游戏，进行对应的画质设置后退出登录，并按照制作基础数据卷中介绍的方法制作基础数据卷，保证后续启动的容器均为对应画质。

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

  b. 打开原神游戏。
    1 ./cfct_video start_ygame 1 60

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

待截图完成后，将截图下载至本地。若看到截图全为原神登录界面，如下图所示，即证明已成功启动。
9. 测试客户端连接服务端后的性能。

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

  b. 修改压测工具config文件中的绑核方式，如果在本机进行测试，需要将工具绑核分配到空闲核心，配置示例如下。

```
# 为压测工具分配的CPU
CPU_FOR_CLIENT=("32" "96" "33" "97")
CPU_FOR_SERVER="64"
CPU_FOR_CMD="65"
```


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

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

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

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

10. 收集数据。

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

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

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

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

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


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