显存限制最佳实践

更新时间:
复制 MD 格式

概述

目前无影云手机对容器可使用的显存大小未做限制,如果部分应用抢占了过多显存,可能导致其他应用申请不到显存,从而导致这些应用发生异常。针对以上场景,无影云手机提供显存上限自定义能力,支持以下两种显存限制方式:

  • 进程维度:为容器内每个进程设置显存上限,统一控制所有进程的显存消耗,设置后无需重启即可生效。

  • 应用维度:为指定应用包名单独设置显存上限,实现对特定应用的精细化显存管控。

该能力仅无影云手机矩阵版cpm.gx7.10xlarge规格支持,详情请参见支持范围

支持范围

  • 无影云手机矩阵版支持该能力,实例版不支持。

  • cpm.gx7.10xlarge规格的云手机矩阵支持该能力,其他规格不支持。

自定义容器内进程维度的显存限制

命令与参数说明

您可以通过以下命令来设置容器内进程维度的显存上限。

setprop sys.wuying.vidmem.limit $LimitationVidmem

执行该命令后,无需重启,立即生效。

其中,$LimitationVidmem表示容器内每个进程最多可占用的显存大小,单位为MiB,最小值为200。

示例:

setprop sys.wuying.vidmem.limit 300

该命令的作用是将容器内每个进程的显存上限设为300 MiB。

说明

如果矩阵上所有容器内的进程显存上限超过服务器总显存上限,则依然会发生显存抢占,请确保您的显存分配是合理的。

为云手机平均分配显存

您可以通过将$LimitationVidmem设为-2来按照实例开数平均分配显存上限。

示例:

setprop sys.wuying.vidmem.limit -2

取消显存限制

$LimitationVidmem的值设为0,即可取消显存限制。

示例:

setprop sys.wuying.vidmem.limit 0

自定义应用维度的显存上限

如果使用的是系统镜像或基于系统镜像制作的自定义镜像,您可以通过以下命令自定义应用维度的显存上限:

wya config -e vidmem [pkgName]=[vidmemSize]

参数说明:

  • [pkgName]:需要限制显存上限的应用包名。

  • [vidmemSize]:该应用可占用的显存大小,单位为MB。

    如果该值大于容器总占用的显存上限,则以应用占用为准;如果为空,则取消应用的显存限制。

显存限制定义的优先级

  • 若镜像版本<25.07.1,应用维度的自定义显存限制优先级低于容器内进程维度。

  • 若镜像版本≥25.07.1,应用维度的自定义显存限制优先级高于容器内进程维度。