Gunicorn 介绍
Gunicorn,Green Unicorn,“绿色独角兽”,是一个被广泛使用的高性能的Python WSGI UNIX HTTP服务器,移植自Ruby的独角兽(Unicorn )项目,使用pre-fork worker模式,具有使用非常简单,轻量级的资源消耗,以及高性能等特点。
Gunicorn 服务器作为 wsgi app的容器,能够与各种Web框架兼容(flask,django等),得益于gevent等技术,使用Gunicorn能够在基本不改变wsgi app代码的前提下,大幅度提高wsgi app的性能。
只能运行在 linux、unix中,不能运行在 windows
一句话解释
学过 JSP 的小伙伴,可以理解为相当于 Tomcat 服务器
准备
启动环境
cd /program/superset
. venv/bin/activate
执行结果如下:
(venv) [root@hadoop1 superset]#
看到上面 (venv) ,说明启动成功
安装 gevent
安装 gevent 协程库,Gunicorn使用该协程库
pip install gevent
安装 Gunicorn
pip install gunicorn
安装其他库(可略)
pip install pillow
pip install sqlalchemy_trino
启动 superset
启动环境
cd /program/superset
. venv/bin/activate
执行结果如下:
(venv) [root@hadoop1 superset]#
看到上面 (venv) ,说明启动成功
启动superset
gunicorn \
-w 10 \
-k gevent \
--worker-connections 1000 \
--timeout 120 \
-b 0.0.0.0:5000 \
"superset.app:create_app()" \
--daemon
解释:
-w 10:进程数量,可以并发执行-k gevent:worker进程的工作方式。 有 sync, eventlet, gevent, tornado, gthread, 缺省值sync。--worker-connections 1000:客户端最大同时连接数。只适用于eventlet, gevent工作方式--timeout 120:120秒内,work 没有返回结果,gunicorn就认定这个request超时,终止worker继续执行,向客户端返回出错的信息,用于避免系统出现异常时,所有worker都被占住,无法处理更多的正常request,导致整个系统无法访问。-b 0.0.0.0:6666:绑定 ip地址、端口号superset.app:create_app():运行的程序--daemon:后台运行,否则一直占用 shell窗口
停止
如果不是后台运行,直接登录 shell,ctrl+c 停止即可
如果是后台运行,需要通过下面命令 kill 进程:
ps -ef | awk '/superset/ && !/awk/ {print $2}' | xargs kill -9
解释:
ps -ef:列出所有进程awk '/superset/ && !/awk/ {print $2}':awk,是处理文本文件的语言。找出 含有superset字样,并且不含有awk字样,并且打印第二列xargs:作为参数,传给killkill -9:杀死进程