文档

服务模型所有相关参数说明

更新时间:

您可以使用EASCMD工具创建EAS服务,创建服务前需要配置服务相关信息的JSON文件。本文为您介绍JSON文件内的参数说明信息。

说明

如何使用EASCMD工具,详情请参见下载并认证客户端

JSON文件参数说明如下表所示。

参数

是否必选

描述

name

服务名称,必须在同一地域内唯一。

token

表示访问鉴权的Token字符串。如果未指定,则系统自动生成。

model_path

model_pathprocessor_path分别为模型和Processor的输入数据源地址,均支持以下格式的地址:

  • HTTP地址:所需文件必须为TAR.GZTARBZ2ZIP等压缩包。

  • OSS地址:地址链接可以是具体文件路径或文件夹路径。同时,还需要配置参数oss_endpoint,示例如下。

    "model_path":"oss://wowei-beijing-tiyan/alink/",
    "oss_endpoint":"oss-cn-beijing.aliyuncs.com",
  • 本地路径:如果使用test命令进行本地调试,则可以使用本地路径。

oss_endpoint

OSS的Endpoint,例如oss-cn-beijing.aliyuncs.com。其他取值请参见访问域名和数据中心

说明

默认无需指定该参数,会使用当前地域的内网OSS地址,来进行模型文件或Processor文件的下载。当跨地域访问OSS时,需要指定该参数。例如:当您在杭州地域部署服务时,model_path中填写了北京地域的OSS地址,则需要使用该参数来指定北京地域的OSS公网访问地址。

model_entry

表示模型的入口文件,可以包含任意文件。如果未指定,则使用model_path中的文件名。主文件路径会传递给Processor中的initialize()函数。

model_config

表示模型的配置,支持任意文本。该参数值会传递给Processor中Initialize()函数的第二个参数。

processor

  • 如果使用官方提供的预置Processor,则直接在此指定Processor Code即可。Processor在eascmd中使用的Code请参见预置Processor使用说明

  • 如果使用自定义Processor,则无需配置该参数,只需要配置processor_pathprocessor_entryprocessor_mainclassprocessor_type参数。

processor_path

Processor相关的文件包路径,可以参见model_path参数的描述信息。

processor_entry

Processor的主文件。例如libprocessor.soapp.py,其中包含了预测所需的initialize()函数和process()函数的实现。

processor_typecpppython时,必须指定该参数。

processor_mainclass

Processor的主文件,JAR包中的mainclass。例如com.aliyun.TestProcessor

processor_typejava时,必须指定该参数。

processor_type

processor实现的语言,取值如下:

  • cpp

  • java

  • python

warm_up_data_path

用于模型预热的请求文件路径。更多关于模型预热功能的介绍,详情请参见高级配置:模型服务预热

runtime.enable_crash_block

当服务实例因Processor代码异常发生Crash后,服务实例是否会自动重启。取值如下:

  • true:表示服务实例不自动重启,以保留现场进行问题排查。

  • false:默认值,表示服务实例自动重启。

cloud

使用公共资源组部署服务时,请务必使用cloud.computing.instance_type字段来指定实例使用的机型。

"cloud":{
      "computing":{
          "instance_type":"ecs.gn6i-c24g1.6xlarge"
      }
  }

具体参数配置详情,请参见公共资源组使用说明

autoscaler

表示模型服务自动水平扩缩容的配置信息。具体参数配置,详情请参见水平自动扩缩容功能

containers

表示使用自定义镜像部署服务时的容器信息。具体参数配置,详情请参见服务部署:自定义镜像

storage

表示服务存储挂载等相关信息。

metadata

表示服务的Meta信息。具体参数配置,详情请参见metadata参数说明

features

表示服务的特殊功能配置。具体参数配置,详情请参见features参数说明

表 1. metadata参数说明

参数

是否必选

描述

一般参数

instance

服务启动的实例数量。

cpu

每个实例需要的CPU数量。

memory

每个实例需要的内存数量,取值为整型,单位为MB。例如,"memory": 4096表示每个实例需要4 GB内存。

gpu

每个实例需要的GPU数量。

gpu_memory

每个实例所需的GPU显存数量,取值为整型,单位为GB。

系统支持实例按显存进行调度,实现单卡共享多实例功能。如果使用显存调度,则需要将gpu字段配置为0。当gpu字段配置为1时,表示实例独占整张GPU卡,此时gpu_memory 字段会被忽略。

重要

当前未开启显存的严格隔离,您需自行控制各实例的显存使用量,不能超出申请量,避免出现显存内存溢出。

qos

实例的服务质量,可选参数值为空或BestEffort。当qos指定为BestEffort时,表示进入CPU共享模式。使实例完全按照显存和内存进行调度,不再受节点的CPU数量限制,节点上的所有实例共享CPU。此时cpu字段表示,按CPU共享模式时,单个实例能使用的最大配额。

resource

资源组ID,配置策略如下:

  • 如果服务部署在公共资源组,则可以忽略该参数,此时服务进行按量付费。

  • 如果服务部署在专属资源组,则配置该参数为资源组ID。例如eas-r-6dbzve8ip0xnzte5rp

cuda

服务需要使用的cuda版本。服务运行时,会自动将指定版本的cuda挂载到实例的/usr/local/cuda目录中。

目前支持的cuda版本为:8.0,9.0,10.0,10.1,10.2,11.0,11.1,11.2。使用示例为:"cuda":"11.2"

enable_grpc

表示是否开启服务网关的GRPC连接,取值如下:

  • false:默认值,表示网关不开启GRPC链接,默认支持HTTP请求。

  • true:表示网关开启GRPC连接。

说明

如果使用自定义镜像部署服务时,镜像中的服务端实现为GRPC,则需要通过该参数将网关的协议切换成GRPC。

enable_webservice

表示是否开启webserver,从而部署为一个AI-Web应用:

  • false:默认值,表示不开启webserver。

  • true:表示开启webserver。

高级参数

重要

请您慎重调整。

rpc.batching

是否开启Server端Batching,用于GPU模型加速。取值如下:

  • false:默认值,关闭Server端Batching。

  • true:开启Server端Batching。

rpc.keepalive

单个请求的最长处理时间。如果请求处理时长超过该值,则服务端返回408超时并关闭连接。默认值为5000,单位为毫秒。

rpc.io_threads

每个实例用于处理网络IO的线程数量,默认值为4。

rpc.max_batch_size

每个Batch的最大Size,默认值为16。仅rpc.batching取值为true时,该参数生效。

rpc.max_batch_timeout

每个Batch的最大Timeout,默认值为50毫秒。仅rpc.batching取值为true时,该参数生效。

rpc.max_queue_size

队列大小,默认值为64。队列满时,服务端返回450并关闭连接。为保证服务端不会压力过载,队列可以提前通知客户端向其他实例进行重试。对于RT较长的服务队列,可以适当减小队列长度,以避免请求在队列中堆积导致大量请求超时。

rpc.worker_threads

每个实例中用于并发处理请求的线程数,默认值为5。

rpc.rate_limit

表示开启QPS限流功能,并限制实例处理的最大QPS。默认为0,表示关闭QPS限流功能。

例如:该参数配置为2000,当QPS高于2000时,会拒绝请求并返回429(Too Many Requests)。

rolling_strategy.max_surge

服务滚动更新过程中,多于指定实例数,最多可以额外创建的实例个数。该参数可以为正整数,表示实例个数;也可以为百分比,例如2%。默认比例为2%。增大该参数可以提高服务更新速度。

例如:服务实例个数指定为100,该参数配置为20,则服务更新开始后会立即创建20个新实例。

rolling_strategy.max_unavailable

服务滚动更新过程中,最大不可用的实例个数。该参数可以在服务更新过程中,为新实例释放资源,避免服务因空闲资源不足而更新卡住。目前在专有资源组中,该参数默认为1;在公共资源组中,该参数默认为0。

例如:该参数为N,则服务更新开始时会立即停止N个实例。

说明

如果空闲资源充足,可以将该参数配置为0。该参数配置过大可能会影响服务稳定性。因为在服务更新瞬间,可用实例个数会减少,则单实例承载的流量会变大。您需要权衡服务稳定性和资源情况来配置该参数。

eas.termination_grace_period

表示实例的优雅退出时间,单位为秒,默认为30秒。

EAS服务采用滚动更新的策略,实例会先进入Terminating状态,服务会先将流量从要退出的实例上切走,实例等待30秒后将已收到的请求处理完成后退出。如果请求处理时间很长,为保证服务更新时,状态为in progress的请求都能被处理完,您可以将该参数值适当调大。

重要

如果将该参数值调小则会影响服务稳定性,将该参数配置过大则会导致服务更新速度过慢,如果无特别需求请不要配置该参数。

scheduling.spread.policy

服务实例调度时的打散策略,支持以下几种策略:

  • host:按照节点来打散,实例尽可能分散在不同的节点上。

  • zone:按照节点所在的可用区来打散,实例尽可能分散在不同的可用区。

  • default:按照默认策略进行调度,无主动打散的逻辑。

表 2. features参数说明

参数

是否必选

描述

eas.aliyun.com/extra-ephemeral-storage

当免费额度的系统盘容量不能满足您的业务需求时,额外需要配置的系统盘内存大小。取值为正整数,单位为GB,取值范围为0~2000 GB。

  • 本页导读 (1)
文档反馈