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


發佈了109 篇原創文章 · 獲贊 64 · 訪問量 73萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章