欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

supervisor + gunicorn 配置superset

程序员文章站 2024-03-12 11:18:02
...


在生产环境上直接跑一个py文件,感觉不太好,还是用 supervisor + gunicorn 部署一下放心

环境

  • system

CentOS 7.4.1708

  • python

Python 3.6.8

  • superset

superset 0.36

gunicorn

Gunicorn 是python中的WSGI容器,pre-fork worker模式,优点就是配置简单,轻量级的资源消耗,以及高性能。

官方配置文档

友情提示:多看官方文档

大概简单介绍一下我使用到的几个配置

  • 1、worker

建议的 workers 数量是 (2*CPU)+1。

--workers=5 或者 -w 5

  • 2、worker_class

gevent的模式

-k gevent
  • 3、守护进程
-D 或者 --daemon
  • 4、输出
--access-logfile FILE
--error-logfile FILE,
--log-file FILE
  • 最终的命令
gunicorn -D -w 10 -k gevent -b 0.0.0.0:8085 --access-logfile=success.log --error-logfile=error.log "superset.app:create_app()"

supervisor

  • 安装
1. 安装:yum install supervisor
2、启动:systemctl start supervisord
3、开机启动: systemctl enable supervisord

常用的几个命令
1、supervisorctl status // 查看监控的项目
2、supervisorctl start xxx
3、supervisorctl stop xxx
4、supervisorctl restart xxx
5、supervisorctl reload // 重新加载配置文件

安装之后 会在 /etc/目录下 生成 supervisord.conf 文件 和 supervisord.d 文件夹

  • 配置

1、xxx 是项目的名字

2、commad 第一个是 虚拟环境的路径

注意:需要安装 gevent (pip install gevent)

3、directory: 项目的路径

4、下面的配置信息 可以放2个地方都可以

第一:supervisord.conf 文件中,文件末尾

第二:supervisord.d 新建 xxx.ini 文件 (supervisord.conf 文件末尾include 包含就可以)

注意 gunicorn 不要守护进程配置supervisor, 不然不起作用,supervisor 控制不了

[program:xxxxx]
command=/home/xxx/venv/bin/gunicorn  -w 10 -k gevent -b 0.0.0.0:8085 --access-logfile=success.log --error-logfile=error.log superset.app:create_app()
directory=/home/xxxx
autostart=true
autorestart=true
stderr_logfile=/home/xxx/log/stderr.log
stdout_logfile=/home/xxx/log/stdout.log
user=root

结束语

1、先简单介绍一下怎么配置, 后续可能会写 supervisor 和gunicorn 的工作原理

2、下次会写 superset 上怎么监控指标已经通知

相关标签: superset