TensorFlow服务频繁的请求超时

时间:2018-09-03 13:22:47

标签: tensorflow tensorflow-serving

问题描述

我们遇到的问题如下。服务配置为加载和服务7个模型,并且随着模型数量的增加,服务请求超时的频率更高。相反,随着模型数量的减少,请求超时就变得微不足道了。在客户端,超时设置为5秒。

有趣的是,最大批处理时间约为700ms,配置的最大批处理大小为10。平均批处理时间约为60ms。

日志和屏幕截图

我们已经检查了TensorFlow服务日志,但未发现警告或错误。此外,我们还监视了正在运行的GPU机器和正在执行针对Serving的推理请求的主机的网络,但未发现任何网络问题。

临时解决方案

减少已加载和服务的模型数量,但不是预期的解决方案,因为这需要设置多个不同的GPU实例,每个GPU实例仅加载并服务一部分模型。

系统信息

OS平台和发行版(例如Linux Ubuntu 16.04):Ubuntu 16.04 从(源或二进制)安装TensorFlow Serving:源 TensorFlow服务版本:1.9 TensorFlow服务可在多个AWS g2.2xlarge实例上运行。我们使用Docker和基本映像nvidia/cuda:9.0-cudnn7-devel-ubuntu16.04

来运行TensorFlow Serving

这种行为的路线可能是什么?当在内存中加载多个模型时,Serving如何处理请求?它如何改变模型上下文?

1 个答案:

答案 0 :(得分:0)

添加从码头工人传递到tensorflow服务的参数--rest_api_timeout_in_ms=0对我有用。

示例:

docker run -p 8501:8501 \
  --mount type=bind,\
source=/tmp/tfserving/serving/tensorflow_serving/servables/tensorflow/testdata/saved_model_half_plus_two_cpu,\
target=/models/half_plus_two \
  -e MODEL_NAME=half_plus_two -t tensorflow/serving --rest_api_timeout_in_ms=0 &