当前位置: 首页 > 工具软件 > Meinheld > 使用案例 >

bottle的gunicorn+gevent部署 和 gunicorn+meinheld 部署

谭浩皛
2023-12-01

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的情况下)


 类似资料: