1. 框架
1.1 webpy
使用webpy框架,基本结构如下:
import web
# 定义url及对应的映射类
urls = (
'/algorithm/video/decode','feature',
...
}
# 启动wsgi应用
app = web.application(urls, globals())
application = app.wsgifunc()
# 定义映射类
class feature:
def POST(self):
paras = web.input()
d = str(paras.data)
try:
return len(d)
except:
return '[]'
1.2 gunicorn和gevent
gunicorn code:application是最简单的gunicorn运行方式,这样运行的话, gunicorn 默认作为一个监听 127.0.0.1:8000 的web server,可以在本机通过: http://127.0.0.1:8000 访问。
gunicorn 默认使用同步阻塞的网络模型(-k sync),对于大并发的访问可能表现不够好, 它还支持其它更好的模式,比如:gevent。
启动方式为:gunicorn -k gevent code:application
2. docker
登录:docker login -u … -p …
容器保存为镜像:docker commit -m -a [本地ContainerId] [本地imageName]:[tag]
镜像推送:
docker tag [本地ImageId] [本地imageName]:[tag]
docker push [本地imageName]:[tag]
启动命令为["/bin/bash","-c",“source /opt/intel/openvino/bin/setupvars.sh;cd root;gunicorn -b 0.0.0.0:8080 -k gevent server:application”]
3. 压力测试
ab -n 100 -c 8 [调用请求]
其中n是请求数,c是并发数