启动云手机实例路径下应存在kbox_config.cfg配置文件。容器会使用该文件中的配置,因此使用时应确保kbox_config.cfg配置文件中的配置正确。若启动路径下无该配置文件,则云手机将禁止启动。
通过修改中如表1所示的map中对应路数的值来选择该路容器使用的GPU、CPU以及数据卷存放路径,灵活配置云手机使用的资源,使性能达到最优。
参数名称 |
参数说明 |
配置说明 |
---|---|---|
|
通过修改map中对应路数的值来选择该路容器使用的GPU。 |
|
KBOX_CPUSET_MAP |
通过修改map中对应路数的值来选择该路容器使用的CPU。 |
|
KBOX_MOUNT_MAP |
通过修改map中对应路数的值来选择该路容器使用的数据卷存放路径。 |
- |
为确保Kbox云手机的稳定运行与最佳性能,请保障每个容器所绑定的CPU物理核和GPU渲染节点同属于一个CPU片。
Kbox云手机容器支持根据客户需求,定制系统属性,覆盖系统属性。如需使用定制属性,需要在启动路径下生成“local.prop”文件,文件内记录定制的系统属性,容器启动后的初始化过程会读取该文件内的属性并覆盖写入。修改方法请参见《Kbox云手机容器 例行维护》文档的“支持Android系统属性可定制”章节。
若启动时为软件解码(以下简称“软解”)方式,即设置ENABLE_HARD_DECODE=0,重启时能切换为硬解方式,即设置ENABLE_HARD_DECODE=1。
1 | nvme list
|
回显示例如下,请以实际为准。加粗部分为NETINT编码卡Quadra芯片NVMe节点,一张编码卡包含2颗芯片。
1 2 3 4 | Node SN Model Namespace Usage Format FW Rev ------------- -------------------- ---------------- --------- ------------------------ ---------------- -------- /dev/nvme0n1 Q2A325A11DC082-0454A QuadraT2A 1 8.59 TB / 8.59 TB 4 KiB + 0 B 4866rKr1 /dev/nvme1n1 Q2A325A11DC082-0454B QuadraT2A 1 8.59 TB / 8.59 TB 4 KiB + 0 B 4866rKr1 |
回显如下,其中0000:05:00.0为该设备对应的busID:
1 2 | /sys/devices/pci0000:00/0000:00:0e.0/0000:05:00.0/nvme/nvme0 /sys/devices/virtual/nvme-subsystem/nvme-subsys0/nvme0 |
回显如下。
1 | NUMA node: 0 |
鲲鹏920 7260服务器:从属于0、1号NUMA的NVMe节点写在NETINT0字段中,从属于2、3号NUMA的NVMe节点写在NETINT1字段中。
字段中每个设备需添加两个节点。例如2号NVMe设备,需添加“/dev/nvme2”、“/dev/nvme2n1”两个节点。
# NETINT编码卡设备节点 NETINT0="/dev/nvme0,/dev/nvme0n1,/dev/nvme1,/dev/nvme1n1" NETINT1="/dev/nvme2,/dev/nvme2n1,/dev/nvme3,/dev/nvme3n1"
# NETINT编码卡设备节点 NETINT0="/dev/nvme0,/dev/nvme0n1,/dev/nvme1,/dev/nvme1n1" NETINT1="/dev/nvme0,/dev/nvme0n1,/dev/nvme1,/dev/nvme1n1"
1 2 3 | cd ~/dependency/deploy_scripts chmod +x android_kbox.sh ./android_kbox.sh start {镜像名称:tag} ${index1} ${index2} |
Kbox基础云手机的默认配置信息如表2所示。
启动脚本使用示例:
1 | ./android_kbox.sh start kbox:origin 1 |
1 | ./android_kbox.sh start kbox:origin 1 5 |
Kbox云手机容器启动时,一般情况下会自动打开Kbox内核动态开关,以使能必要的Linux Kernel功能。
可以通过以下指令查询Kbox内核动态开关状态。
1 | cat /sys/kernel/kbox/kbox_enable
|
回显为1,表示Kbox内核动态开关为打开状态;回显为0,表示开关为关闭状态。
若查询发现Kbox内核动态开关为关闭状态,请通过以下指令手动打开该开关。
1 | echo 1 > /sys/kernel/kbox/kbox_enable |
1 | docker exec -it kbox_${index} getprop | grep boot_completed |
若回显信息中的sys.boot_completed显示为“1”,则启动成功。
由于Kbox方案默认挂载数据卷,默认的docker stop、docker rm命令不能彻底清理容器数据,需要使用脚本彻底清理主机侧文件。
使用android_kbox.sh脚本,停止并删除正在运行的Kbox容器。
1 | ./android_kbox.sh delete ${index} |
1 | ./android_kbox.sh delete ${index1} ${index2} |
由于Kbox方案默认挂载数据卷,在重启容器时,无法使用默认的docker restart命令进行重启,需要使用脚本执行容器的重启操作。
使用android_kbox.sh脚本重启Kbox容器。
1 | ./android_kbox.sh restart ${index} |
1 | ./android_kbox.sh restart ${index1} ${index2} |