使用EAS在线预测服务时遇到问题,可在此查找原因和解决方法,涵盖服务部署异常、镜像拉取失败、服务调用报错、权限与网络配置等常见场景。
有问题先问小PAI
PAI智能助手(小PAI)提供PAI全链路产品的使用说明和操作指引,支持对DSW实例、DLC任务、EAS服务进行运维诊断,自动识别失败原因并给出处理建议。

服务部署与状态异常
服务部署后,您可以通过概览页面的服务实例列表,查看服务实例的状态、日志及事件,以定位问题。
Q: 服务长时间处于等待中状态,如何解决?
服务在部署阶段后会进入到Waiting(等待中)状态,等待资源调度和服务实例启动。当所有服务实例均启动成功后,服务会进入到Running(运行中)状态。可能的情况有:
Q:服务处于Failed(失败)状态,如何解决?
服务会在以下两种情况处于Failed状态:
服务部署阶段:如果部署时指定的资源(如模型地址等)不存在,服务的当前状态信息中将显示报错原因,通常您可以根据报错信息判断出部署失败的原因。
服务启动阶段:在服务完成部署并调度到资源开始启动时失败,此时会出现状态信息
Instance <network-test-5ff76448fd-h9dsn> not healthy: Instance crashed, please inspect instance log.。此状态表示某个实例启动失败。在服务概览页面的服务实例列表中查看失败状态,可判断具体原因。实例失败有如下几种情况:
实例因内存超限被系统终止(OOMKilled):上次状态列显示 OOMKilled(247),可结合重启次数和上次退出原因列确认。解决方法:调大服务内存后重新部署。
代码错误导致Crash:上次状态显示Error(error code)。单击实例操作列的日志按钮查看服务日志,定位启动失败原因。
服务镜像拉取失败,参见镜像拉取失败(ImagePullBackOff)怎么办?。
Q:镜像拉取失败(ImagePullBackOff)怎么办?
如果服务实例列表中看到上次退出原因是ImagePullBackOff,通常是镜像拉取失败。如果状态列有图标,可以单击查看具体原因。
常见镜像拉取失败原因如下:
失败原因 | 可能的报错 | 解决方案 |
系统盘空间不足 |
| |
ACR访问控制未配置 |
| 使用镜像公网地址,需为ACR开通公网访问。 使用镜像内网地址:
|
EAS网络配置问题 |
| 使用镜像公网地址时,需要给EAS配置访问公网。 |
鉴权信息缺失或错误 |
| ACR企业版实例如果没有配置公开匿名拉取,跨地域通过公网拉取,部署时需配置镜像仓库下载的用户名和密码。 获取请参见配置访问凭证。 |
根据镜像服务与EAS服务所处地域情况,使用建议如下:
同地域:推荐使用镜像内网地址拉取镜像。
跨地域:ACR个人版只能使用镜像公网地址。ACR企业版根据以下情况选择:
对安全性和稳定性有较高要求,使用镜像内网地址,需通过CEN打通VPC,参见跨地域或从IDC访问ACR企业版实例。
业务场景较为简单,或暂时无法完成内网打通,使用镜像公网地址,作为临时解决方案。通过公网下载,速度会比较慢。
ACR企业版实例注意事项:
需根据情况配置专有网络和公网的访问控制。
如仓库没有配置公开匿名拉取,那么跨地域通过公网地址拉取时,EAS服务需配置镜像仓库下载的用户名和密码。
Q: EAS服务停止后自动重启
问题描述:EAS服务停止一段时间后自动重启。
部署事件记录如下:
部署事件列表显示服务版本从 24 升级到 25 期间的状态变化,时间范围为 2024-08-31 17:38:29 至 18:52:56。事件状态依次包含 Deploying、Scaling、HotUpdate、Running 等,信息列显示 Service is now running、Stage scale complete、Service is now auto scaling、Successfully synchronized resources 等消息,可用实例数在 0 与 1 之间变化,表明服务在版本更新过程中经历了缩容、部署同步和热更新后自动恢复运行。
问题原因:
服务配置了弹性伸缩且最小实例数为0。无流量时实例数自动缩容到0,一旦有请求到来就会触发自动扩容(无需达到扩容指标阈值)。
是否自动扩容可以根据部署事件中auto scaling的描述来判断。
部署事件中,信息列出现Service is now auto scaling,表明服务被自动触发扩容,随后事件状态从Waiting经过Scaling变为Running,可用实例数从0变为1。
解决方案:
如不再需要该服务,可直接删除。
不想删除服务,可主动停止(控制台点击停止,或调用API
StopService)。主动停止的服务不会被流量触发扩容。如果不希望弹性扩缩容导致服务自动停止,请不要将最小实例数设置为0。
您也可以根据实际需要关闭弹性扩缩容,防止意外流量触发扩容启动。
Q: PAI-EAS启动报错IoError(Os { code: 28, kind: StorageFull, message: "No space left on device" })
问题描述:
[2024-10-21 20:59:33] serialize_file(_flatten(tensors), filename, metadata=metadata)
[2024-10-21 20:59:33] safetensors_rust.SafetensorError: Error while serializing: IoError(Os { code: 28, kind: StorageFull, message: "No space left on device" })
[2024-10-21 20:59:35] time="2024-10-21T12:59:35Z" level=info msg="program stopped with status:exit status 1" program=/bin/sh
问题原因:EAS实例系统盘被大量模型文件占据,造成服务无法正常启动。
解决方案:
方案一:为EAS实例扩容系统盘。
方案二:如果是模型文件过大,考虑将模型文件存储到外部存储(OSS、NAS等),通过存储挂载来读取。
Q: 部署报错:fail to start program with error:fork/exec /bin/sh: exec format error
exec format error 表明操作系统无法执行目标程序文件,最常见的原因是可执行文件或容器镜像的 CPU 架构与运行它的宿主机系统架构不兼容。
建议切换其他资源规格尝试。
Q:报错:Invalid GPU count 6, only supported: [0 1 2 4 8 16]
为了最大化多GPU间的通信效率,为单个服务指定的GPU数量必须是2的幂次方。
支持分配0,1,2,4,8,16卡。
Q:专属云EAS场景化部署LLM大模型时怎么无法使用公共模型?
专属云EAS暂不支持部署公共模型,您需自行部署模型。
Q:EAS 实例删除失败或点击停止按钮无效怎么办?
实例删除失败或报错:若删除时报错提示工作空间不存在等异常,建议优先检查关联的工作空间状态是否正常;也可尝试直接在 PAI 控制台的服务列表中点击删除操作进行释放。
点击停止按钮无效(实例一直处于运行中):可通过以下方法排查。
浏览器端排查:刷新页面、清理缓存或切换浏览器/无痕模式后重试。
请求诊断:打开浏览器开发者工具(F12)的 Network 面板,点击停止并观察 API 请求及响应状态码,确认请求是否发送成功。
日志核查:检查 PAI 控制台操作日志或云监控中是否有停止记录及具体失败原因。
API 替代方案:若控制台操作持续无效,可通过 OpenAPI 在线调试调用
StopService接口强制停止服务。
资源问题
计算资源及系统盘使用问题,详情请参见资源配置-常见问题。
服务更新与扩缩容
Q: EAS的扩缩容策略
支持水平自动扩缩容或定时扩缩容,根据业务需求选择。
若选择水平自动扩缩容,可以基于自定义指标(如 QPS、CPU 使用率等)进行配置。具体指标的计算方式和配置方法,请参见水平自动扩缩容。
为避免因指标波动导致频繁扩缩容,系统对阈值设置了 10% 的容忍区间。例如,当您将 QPS 阈值设为 10 时,实际触发扩容的条件通常为 QPS 持续高于 11(即 10 × 1.1)。这意味着:
若 QPS 在 10–11 之间短暂波动,系统可能不会立即扩容;
只有当 QPS 持续稳定在 11–12 或更高时,才会触发扩容操作。
该机制有助于减少不必要的资源变动,提升系统稳定性与成本效益。
Q: 扩容的实例在哪?
如果使用专属资源组,并配置了弹性资源池,在专属资源组中没有可用节点资源时,会使用公共资源组扩容。
Q:如何平滑更新服务
问题详述:在更新服务时,需保证服务不中断,并且在专属资源不足时,能临时使用公共资源来完成更新,更新完成后再将实例调度回专属资源组。
解决方案:需要组合使用滚动更新、高优资源重调度和弹性资源池。
服务调用问题
服务调用报错
根据返回的状态码排查,详情请参见附录:服务状态码与常见报错。
Q:SDWebUI服务的生图请求出现 504 超时如何处理?
生图类推理的耗时通常较长,当请求处理时长超过网关或客户端的超时阈值时,会返回 504 Gateway Timeout 错误。
可以采取以下措施:
适当调大客户端的请求超时时间,确保能够覆盖单次生图的耗时。
对耗时较长的生图任务,改用 EAS 提供的异步推理能力,异步提交任务并获取结果,避免受同步请求超时的限制。
优化服务的推理性能,例如更换计算能力更高的资源规格,缩短单张图片的生成时长。
Serverless 版 SDWebUI 服务可能因资源不足导致排队时间过长而超时,建议切换至资源更充足的地域(如上海)重试。
HTTPS与自定义域名
Q:服务是否支持 HTTPS 调用?
支持。您只需将服务地址中的 http:// 替换为 https:// 即可进行加密传输。如果客户端(如 Python requests)报告 SSL 证书验证错误,这通常是客户端环境配置问题,而非 EAS 服务本身的问题。
Q:如何强制使用 HTTPS 访问?
共享网关:不支持强制 HTTPS。
专属网关:支持。您可以在专属网关配置中开启 HTTPS 重定向,开启后,所有通过 HTTP 的访问请求都将被自动重定向到 HTTPS。
Q:能否使用自定义域名调用?
可以。您需要创建并使用全托管专属网关,并在网关中配置您的自定义域名。详情请参见使用专属网关。
Token 管理
Q:Token 是否会过期或变化?
不会。服务部署后生成的 Token 是长期有效的。服务的重启、更新(除非手动修改鉴权方式)或扩缩容都不会改变 Token。只有当您手动重置 Token 或删除服务时,它才会失效。
Q:能否为一个服务创建多个 Token?
不支持。一个 EAS 服务实例仅支持一个认证 Token。如需实现多用户权限管理或分别计量,建议结合使用阿里云 RAM 鉴权等更灵活的方案。
其他调用问题
Q:如何为LLM服务启用流式响应 (Streaming)?
EAS 服务本身不提供全局的流式开关。您必须在每次 API 调用的请求体(Request Body)中明确指定需要流式输出。例如,调用兼容 OpenAI 格式的 LLM 服务时,在 JSON 请求体中加入 "stream": true 即可。
Q:VPC 地址调用与 VPC 高速直连的区别
VPC 地址调用:VPC地址调用是内网SLB+网关的模式(公网地址是公网SLB+网关),这是比较经典的请求模式。在这种模式下,请求需要通过SLB的4层转发和网关的7层转发之后到达服务实例。在大流量高并发的场景中,通过转发会带来一定的性能开销,同时网关也会有带宽的限制(默认1 Gbps)。
VPC 高速直连:EAS提供了高速直连的访问模式,既解决了性能和扩展性的问题,也无须增加额外的成本。开通VPC高速直连后,相当于打通了您的VPC和EAS服务VPC之间的网络通路。您的请求通过EAS提供的服务发现功能对服务进行寻址,并在客户端代码中通过软负载的方式发起负载均衡的服务请求。这个过程需要使用EAS提供的SDK来进行访问,并将endpoint_type设置为DIRECT即可。
例如在Python SDK使用说明的场景中,您可通过在代码中增加如下一行代码,来将调用由网关改为直连:
client = PredictClient('http://pai-eas-vpc.cn-hangzhou.aliyuncs.com', 'mnist_saved_model_example') client.set_token('M2FhNjJlZDBmMzBmMzE4NjFiNzZhMmUxY2IxZjkyMDczNzAzYjFi****') client.set_endpoint_type(ENDPOINT_TYPE_DIRECT) # Direct link client.init()
Q:为什么SDWebUI服务使用API 调用与 WebUI 的出图效果不一致?
WebUI 通常会自动应用一套默认的生成参数(如采样器、迭代次数、引导权重、随机种子等),而 API 调用仅使用请求体中显式传入的参数。两端参数不一致时,出图效果就会存在差异。
对齐参数的方法如下:
记录 WebUI 本次生成实际使用的全部参数,与 API 请求体中的参数逐项比对,确保取值一致。
在两端固定相同的随机种子分别生成一次,对比输出结果进行验证。
如果效果仍不一致,检查两种调用方式使用的模型版本与运行环境是否相同。
权限与网络
Q:为什么RAM用户无法自动创建或删除EAS服务关联角色?
只有拥有指定权限的用户才能自动创建或删除AliyunServiceRoleForPaiEas。RAM用户遇到此问题时,需添加如下权限策略:
通过脚本配置的方式将如下权限策略创建为自定义策略。具体操作,请参见创建自定义权限策略。
将自定义策略授权给目标RAM用户。具体操作,请参见管理RAM用户的权限。
Q:EAS服务内部如何访问公网?
EAS服务内部默认不通公网。如需访问公网,请为EAS服务配置具有公网访问能力的专有网络。请参见EAS访问公网或内网资源。
服务管理
Q:EAS实例是否支持 SSH 登录?
不支持。EAS 作为一个托管服务,不提供进入容器内部的 SSH 权限。如需在容器启动时执行特定命令,请在服务配置的运行命令中指定。
Q:EAS服务状态有哪些?
目前,EAS服务有以下几种状态,您也可以前往模型在线服务(EAS)页面的服务状态列进行查看。
Creating:创建中
Waiting:等待中(等待实例启动完毕)
Stopped:已停止
Failed:已失败
Updating:升级中(实例会被更新)
Stopping:停止中
HotUpdate:升级中(热更新,不更新实例)
Starting:启动中
DeleteFailed:删除失败
Running:运行中
Scaling:升级中(实例扩缩容中)
Pending:等待中(等待具体处理)
Deleting:删除中
Completed:已完成
Preparing:准备
Q: 如何查看服务由哪个RAM用户创建
通过操作审计控制台查询事件,事件名称选择CreateService,详见通过操作审计控制台查询事件。
Q:可以公网下载EAS官方镜像么?
PAI官方镜像是平台内部镜像,只能在PAI平台上使用,不能在除平台容器之外的地方下载。
Q:PAI-EAS 服务名称和服务 ID 的唯一性规则是什么?
服务名称唯一性:EAS 服务名称在单个地域内全局唯一。若创建服务时提示"服务名已存在",但模型在线服务(EAS)列表中未显示该服务,说明该名称已被当前地域下的其他用户占用,请更换一个未被使用的服务名称后重试。
服务 ID 唯一性:PAI-EAS 服务 ID 具有全局唯一性,由系统自动分配,不可手动指定。
Q:服务部署后能否修改服务名称?
不支持。服务名称在创建后不可修改,作为服务的唯一标识符用于 API 调用和管理操作。在控制台更新服务的表单中,服务名称字段为禁用状态。如需更换名称,请新建服务并删除原服务,注意这将导致服务中断和 IP 地址变更。
Q:PAI-EAS 模块停用后再次使用是否需要重新购买?找不到已购服务实例怎么办?
Q:修改存储挂载配置后何时生效?是否需要重新部署服务?
存储挂载配置属于服务的部署配置,修改后不会动态生效。需通过更新服务操作提交修改,更新完成后,服务实例按新配置重启,新的挂载关系才会生效。因此,修改存储挂载配置后需要更新(重新部署)服务。
如果对服务连续性有要求,可以在更新服务时配置滚动更新,避免服务中断。
Q:更新服务配置导致挂载文件丢失怎么办?
该问题通常由以下原因导致:
更新时删除了原有的存储挂载配置,或修改了挂载路径,导致实例不再挂载原存储。此时文件并未丢失,仍保存在原 OSS 或 NAS 中。
文件被写入了容器内的临时本地盘,而非挂载目录。实例重启或更新后,本地盘数据会被清除。
对于第一种情况,将挂载配置恢复为更新前的配置并再次更新服务,即可重新看到文件;对于第二种情况,数据无法恢复。需要持久保存的数据应始终写入 OSS 或 NAS 的挂载目录,并在更新服务前确认挂载配置完整无误。
其他
Q:部署EAS服务时选择不到OSS Bucket?
部署EAS服务时,可以通过挂载方式配置模型和代码。OSS存储空间和NAS文件系统必须与EAS服务位于同一地域,否则无法选择。
Q:EAS 挂载 OSS 的存储如何计费?如何评估容量?
EAS 本身不对存储容量收费。挂载 OSS 后,存储费用由 OSS 按实际存储量和存储类型计费,EAS 仅收取服务的计算资源费用。评估容量时,按模型、代码、数据等文件的实际大小估算即可;OSS 的存储容量随使用量弹性扩展,无需预先购买固定容量。
Q:EAS挂载OSS时通过默认公网域名访问被阻断,如何处理?
可以使用以下替代方案:
使用内网域名。
如需通过公网调用请使用自定义域名。通过自定义域名访问 OSS 资源时,如果 OSS 所在地域为中国内地,该域名需按监管要求完成 ICP 备案,未备案的域名无法用于访问。
Q:EAS服务资源从按量付费转为包年包月
EAS服务支持从按量付费转为包年包月
登录PAI控制台,进入模型在线服务(EAS)页面,然后单击目标服务操作列下的更新,在资源信息区域,将资源类型由公共资源更新为EAS资源组。在模型部署配置页面的资源信息区域,资源类型提供公共资源、EAS资源组和资源配额三种选项,还需配置资源组、实例数以及CPU(核数)、内存(GB)、GPU(卡数)等部署资源。
EAS专属资源组资源不支持从按量付费转为包年包月。
Q:Tensorflow问题
详情见TensorFlow常见问题。