bottle的gunicorn+gevent部署 和 gunicorn+meinheld 部署
config.py(gunicorn+gevent):
# -*-coding:utf-8 -*-
__author__ = "ZJL"
import gevent.monkey
import multiprocessing
gevent.monkey.patch_all()
# 监听本机的5000端口
bind = '0.0.0.0:5000'
preload_app = True
# 开启进程
# workers=4
workers = multiprocessing.cpu_count() * 2 + 1
# 每个进程的开启线程
threads = multiprocessing.cpu_count() * 2
backlog = 2048
# 工作模式为gevent
worker_class = "gevent"
# debug=True
# 如果不使用supervisord之类的进程管理工具可以是进程成为守护进程,否则会出问题
daemon = True
# 进程名称
proc_name = 'gunicorn.pid'
# 进程pid记录文件
pidfile = 'app_pid.log'
loglevel = 'debug'
logfile = 'debug.log'
accesslog = 'access.log'
access_log_format = '%(h)s %(t)s %(U)s %(q)s'
configm.py(gunicorn+meinheld):
# -*-coding:utf-8 -*-
__author__ = "ZJL"
import multiprocessing
# 监听本机的5000端口
bind = '0.0.0.0:5000'
preload_app = True
# 开启进程
# workers=4
workers = multiprocessing.cpu_count() * 2 + 1
# 每个进程的开启线程
threads = multiprocessing.cpu_count() * 2
backlog = 2048
#工作模式为meinheld
worker_class = "egg:meinheld#gunicorn_worker"
# debug=True
# 如果不使用supervisord之类的进程管理工具可以是进程成为守护进程,否则会出问题
daemon = True
# 进程名称
proc_name = 'gunicorn.pid'
# 进程pid记录文件
pidfile = 'app_pid.log'
loglevel = 'debug'
logfile = 'debug.log'
accesslog = 'access.log'
access_log_format = '%(h)s %(t)s %(U)s %(q)s'
bottletest.py
# -*-coding:utf-8 -*-
__author__ = "ZJL"
from bottle import route, run
from mogodbM import mb
@route('/')
def hello():
# 插入mongodb数据
mb.insert('zjl_demo', [{'a': '1', 'b': [1, 2, 3, 4, "哈哈哈"]}])
# 查询数据
mb.find_cursor("zjl_demo", {"a": "1"})
return "Hello World!"
run(server='gunicorn',host='127.0.0.1', port=5000)# debug=True
gunicorn+gevent启动命令:gunicorn -c config.py bottletest:app
gunicorn+meinheld启动命令:gunicorn -c configm.py bottletest:app
性能方面,meinheld真的是性能怪兽,基本是gevent的十几倍(读写mongodb的情况下)
还没有评论,来说两句吧...