
# 在线服务运行中但是预测失败时，如何排查报错是不是推理服务原因导致的？
#### 问题现象
在线推理服务启动后，当在线推理服务进入到"运行中"状态后，进行预测，预测请求发出后，收到的响应不符合预期，无法判断是不是推理服务的问题导致的不符合预期。
#### 原因分析
在线推理服务启动后，ModelArts提供两种方式的预测：
- 方式1：在ModelArts控制台的服务详情页面的"预测"页签进行预测。
- 方式2：在ModelArts控制台的服务详情页面的"服务"页签获取到调用信息，然后通过cURL或者Postman等工具进行预测。
无论是方式1还是方式2，当推理请求发送出去后都有可能收到不符合预期的推理结果。
推理请求经过一系列传递后最终是会进入到推理服务中，推理服务可能是以自定义镜像的方式导入的，可能是因为推理服务在处理推理请求时候出现了问题导致结果不符合预期，能准确判断出来是否是在推理服务中出的问题对于快速解决问题帮助很大。
#### 处理方法
不管是用方式1还是方式2，要判断是否是推理服务返回的不合预期的结果都需要获取到本次推理请求的response header及response body。
- 如果是方式1，可以通过浏览器的开发者工具获取到推理请求的response信息。以Chrome浏览器为例，可以使用快捷键F12打开开发者工具，然后选择"Network"页签，再单击"预测"，可以在Network页签窗口中看到本次推理请求的response信息。
  图1推理请求的response信息   
  ![](https://support.huaweicloud.com/modelarts_faq/figure/zh-cn_image_0000002511551292.png "点击放大")
  在name栏找到推理请求，其中推理请求的URL包含"/v2/infers"的关键字，可以在Headers栏中的url看到完整url，分别在Headers页签及Response页签中查看请求体和返回体的信息。
  

- 如果是方式2可以根据不同的工具查看response header及body信息，比如CURL命令可以通过-I选项查看response header。
如果查看到的response header中Server字段为ModelArts且response body中没有显示ModelArts.XXXX的错误码，此时收到的response信息为模型服务返回的response信息，如果不符合预期，可以判断为模型服务返回的结果不符合预期。
如果错误码是ModelArts.8909，则根据错误信息判断是否服务连接超时或其他异常导致访问失败。
