我有一个docker容器,它接受图像的URL,使用urllib2将图像下载到内存中,使用Tensorflow对其进行一些处理,并返回JSON数据。在

代码结构如下:

我的app.pyfrom flask import Flask

from flask_restful import reqparse, abort, Api, Resource, inputs

import my_tensorflow

app = Flask(__name__)

api = Api(app)

parser = reqparse.RequestParser()

parser.add_argument('url')

class MyApp(Resource):

def post(self):

c = my_tensorflow.MyTensorflow(args['url'])

c.create_graph()

returned = c.run_inference_on_image()

return {'results': returned}

api.add_resource(MyApp, '/myapp')

if __name__ == '__main__':

port = int(os.environ.get('PORT', 5000))

app.run(host='0.0.0.0', port=port)

我的_tensorflow.py

^{pr2}$

容器可以处理大约20个请求。在大约20个请求之后,它停止响应,只响应“内部服务器错误”。我似乎无法解决这个问题。我在代码中放入print语句以查看它在哪里变得无响应或出现错误,但是没有一个print语句出现在docker logs

docker logs没有显示任何有趣的内容。如下所示:172.17.42.1 - - [13/Feb/2017 21:12:02] "POST /myapp HTTP/1.1" 500 -

当容器没有响应时(用internal server error响应)docker stats返回:CONTAINER CPU % MEM USAGE/LIMIT MEM % NET I/O

docker_container 0.01% 2.475 GB/8.255 GB 29.99% 5.328 MB/2.036 MB

一旦我用docker restart重新启动容器,一切都会重新开始工作。在

我不确定可能出了什么问题,以及如何解决问题?在

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐