python docker 多进程提供 稳定tensorflow gpu 线上服务
尝试了太多的python多进程的服务,在tensorflow 的线上GPU服务中总是不理想。tensorlfow serving docker服务这些也有些不便。
今天抽空给大家分享一个成功的经验。失败的坑就太多了,不扯了。包括mutiprocess 和gevent,都不太理想。
1、使用gunicorn。怎么使用的自己查一下。
2、gunicorn --bind 0.0.0.0:10010 -w 3 app_×××:app
3、在docker里这样启动后,虽然是多进程,但是速度并没有加快。怎么办?非常简单启动命令加上 --worker-class gevent。
gunicorn --bind 0.0.0.0:10010 -w 3 --worker-class gevent app_***:app
了解gunicorn的详情的可以参看下面的文字:
一、
创建flask应用
文件名 abc.py
# -*- coding:utf-8 -*-
from flask import Flask
import time
app = Flask(__name__)
@app.route('/')
def index():
time.sleep(0.01) # 模拟程序阻塞
return 'hello world!'
if __name__ == '__main__':
app.run()
二、
执行命令
gunicorn --bind 0.0.0.0:10010 -w 3 --worker-class gevent abc:app
#gunicorn --workers 3 --bind unix:myproject.sock --daemon -m 007 --user www-data --worker-class gevent wsgi:app
--worker-class
进行工作模式,默认是sync,会造成程序阻塞,这里使用gevent。
--workers
指定启动多少个进程,根据机器cpu核数来定。
--bind
指定通讯绑定到哪个.sock文件上。
--daemon
指定后台启动。
--user
指定用哪个用户启动这个进程,由于ubuntu采用apt-get安装的nginx默认启动用户是www-data,所以这里使用www-data,以免nginx没有权限访问.sock文件。
可使用top
指令查看gunicorn程序启动情况:
参考:
python docker 多进程提供 稳定tensorflow gpu 线上服务的更多相关文章
- 记一次线上服务CPU 100%的处理过程
告警 正在开会,突然钉钉告警声响个不停,同时市场人员反馈客户在投诉系统登不进了,报504错误.查看钉钉上的告警信息,几台业务服务器节点全部报CPU超过告警阈值,达100%. 赶紧从会上下来,SSH登录 ...
- 一次线上服务高 CPU 占用优化实践 (转)
线上有一个非常繁忙的服务的 JVM 进程 CPU 经常跑到 100% 以上,下面写了一下排查的过程.通过阅读这篇文章你会了解到下面这些知识. Java 程序 CPU 占用高的排查思路 可能造成线上服务 ...
- 线上服务的FGC问题排查,看这篇就够了!
线上服务的GC问题,是Java程序非常典型的一类问题,非常考验工程师排查问题的能力.同时,几乎是面试必考题,但是能真正答好此题的人并不多,要么原理没吃透,要么缺乏实战经验. 过去半年时间里,我们的广告 ...
- 线上服务的FGC问题排查
转载:https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/106088467 线上服务的GC问题,是Java程序非常典型的一类问题,非常考验 ...
- 糟了,线上服务出现OOM了
前言 前一段时间,公司同事的一个线上服务OOM的问题,我觉得挺有意思的,在这里跟大家一起分享一下. 我当时其实也参与了一部分问题的定位. 1 案发现场 他们有个mq消费者服务,在某一天下午,出现OOM ...
- Linux(2)---记录一次线上服务 CPU 100%的排查过程
Linux(2)---记录一次线上服务 CPU 100%的排查过程 当时产生CPU飙升接近100%的原因是因为项目中的websocket时时断开又重连导致CPU飙升接近100% .如何排查的呢 是通过 ...
- 线上服务CPU100%问题快速定位实战
功能问题,通过日志,单步调试相对比较好定位. 性能问题,例如线上服务器CPU100%,如何找到相关服务,如何定位问题代码,更考验技术人的功底. 58到家架构部,运维部,58速运技术部联合进行了一次线上 ...
- 线上服务内存OOM问题定位[转自58沈剑]
相信大家都有感触,线上服务内存OOM的问题,是最难定位的问题,不过归根结底,最常见的原因: 本身资源不够 申请的太多 资源耗尽 58到家架构部,运维部,58速运技术部联合进行了一次线上服务内存OOM问 ...
- 线上服务内存OOM问题定位
转自:架构师之路,http://mp.weixin.qq.com/s/iOC1fiKDItn3QY5abWIelg 相信大家都有感触,线上服务内存OOM的问题,是最难定位的问题,不过归根结底,最常见的 ...
随机推荐
- legend_noa 的 EMACS配置
(defun my-c-mode-auto-pair() (interactive) (make-local-variable'skeleton-pair-alist) (setq skeleton- ...
- Java修饰符final总结
final 的意思是最终的,不可改变的. final可以用来修饰 a.类. b.方法(包括类方法和对象方法). c.变量(包括成员变量.局部变量). 1. final修饰类: 用final修饰的类不能 ...
- [SQL Server] sysobjects的介紹
sysobjects表 數據庫中所創建的每個對象(約束.默認值.日誌.規則.存儲過程等)都各以一行資訊呈現於表中. 而臨時對象只有在tempdb內,才在該表中各佔一行. sysobjects 表結構: ...
- 树莓派3 Raspberry系统安装samba
默认Raspberry不自带samb,需要手动安装. 如果默认的rasp源不好用的话,可以使用下面从网上找的: deb http://mirrors.cqu.edu.cn/Raspbian/raspb ...
- python 基础之变量存储缓存机制与数据驻留小数据池
一:变量存储的缓存机制 在同一文件(模块)里,变量存储的缓存机制 (仅对python3.x版本负责),那么 --对于Number (int bool float complex) 1.对于整型而言,- ...
- docker-compose up使用自定义的网段的两种方式(从其根源指定)
问题描述 还是那个研究安全大业的同事,在部署他的秘密武器,是用docker-compose部署的,有差不多20多个docker-compose.yml文件,然后由于docker-com ...
- android studio 升级到3.3.1后,提示程序包不存在
android studio 升级到3.3.1后,提示程序包不存在 原因 主Module--A 引用了其他Moduel--B里的jar库, 只需要把B的dependencies改成如下(implent ...
- catkin-make: command not found 错误解决
参考网址:https://answers.ros.org/question/212492/catkin_make-command-not-found/ zc@ubuntu:~ $ source /op ...
- Scrapy实战篇(七)之爬取爱基金网站基金业绩数据
本篇我们以scrapy+selelum的方式来爬取爱基金网站(http://fund.10jqka.com.cn/datacenter/jz/)的基金业绩数据. 思路:我们以http://fund.1 ...
- IDEA 运行spring boot出现端口占用的问题
Description: The Tomcat connector configured to listen on port 8080 failed to start. The port may al ...