配置了一下午环境,跑起来是跑起来了,但是寻摸着一次琢磨透他们嘛。
鉴于gunicorn,supervisor用的不多,网络上找到资料很少(中文)
英文的也有些不太好懂。
想问下gunicorn可以设置worker设置几个比较合适呢。阿里云服务器,双核的。
supervisor是不是也有设置类似worker的地方,配置一下午迷糊了。
nginx呢。
晕乎乎的。
另外gevent不太了解,这个有必要上吗。我看配置起来蛮简单的。有什么优缺点呢。
谢谢各位。
阿神2017-04-18 09:17:36
无论是worker
还是Nginx
的Process
,都是根据你的服务器的CPU
核数决定的,你的阿里云只有双核(2个核
)?worker
还是Nginx
的Process
,都是根据你的服务器的CPU
核数决定的,你的阿里云只有双核(2个核
)?
gunicorn
不是很了解,uWSGI
也有个worker
,一般设置成核数X2
。
Nginx
据说8
个进程就可以了。
网上搜一下Nginx
gunicorn
不是很了解,uWSGI
也有个worker
,一般设置成核数X2
。🎜
🎜Nginx
据说8
个进程就可以了。🎜
🎜网上搜一下Nginx
优化,应该挺多教程的。🎜PHP中文网2017-04-18 09:17:36
关于worker
这个基本上是建议等于实际CPU
核心数的一到两倍,我一般是有几个核,就用几个worker
。worker
这个基本上是建议等于实际CPU
核心数的一到两倍,我一般是有几个核,就用几个worker
。
至于supervisor
我好像并没有看到有关worker
的设定。
实际上我是用的uwsgi
+ supervisor
+ nginx
的组合。具体你可以google
下,我也只是照着官方wiki
supervisor
我好像并没有看到有关worker
的设定。实际上我是用的
uwsgi
+ supervisor
+ nginx
的组合。具体你可以google
下,我也只是照着官方wiki
来做,没用到啥高大上的东西。🎜
🎜PS:放弃中文资料吧,大都年久失修,英文虽然不好啃,但至少啃不到坑里🎜高洛峰2017-04-18 09:17:36
Gunicorn worker的数量从经验的角度一般配置 2 * core + 1
, core指的核心数。2 * core + 1
, core指的核心数。
supervisor没有配worker数这个概念,但是有配置进程数, numprocs
这个字段
如果用的gunicorn,一般建议将 worker_class
配置成 gevent
numprocs
这个字段🎜🎜
🎜🎜如果用的gunicorn,一般建议将 worker_class
配置成 gevent
, 这个你懂得.🎜🎜
🎜ringa_lee2017-04-18 09:17:36
gunicorn
是常用的 WSGI 服务器,在目前应用中,和 uWSGI
都是比较常用的选择,而两者性能都相差不远。 gunicorn
配置的 worker 数量官网的示例值是 2 * cpu数 + 1
,官网示例gunicorn
是常用的 WSGI 服务器,在目前应用中,和 uWSGI
都是比较常用的选择,而两者性能都相差不远。gunicorn
配置的 worker 数量官网的示例值是 2 * cpu数 + 1
,官网示例
import multiprocessing
bind = "127.0.0.1:8000"
workers = multiprocessing.cpu_count() * 2 + 1
所以,以题主的双核服务器来说,应该设为5
个合适。
而 supervisor
是一个进程管理工具,可以用于管理N多的进程,不仅仅是 Gunicorn
,我甚至用来管理 Redis
。确实,supervisor
中也存在类似worker
数量的东西,叫procs
,其实是进程数量,也就是说你配置了几个,supervisor
就会帮你启动几个进程。
需要注意的是,supervisor
和 Gunicorn
的 worker 是独立的,假设两个你都设置为 5 的话,那事实上会有 5 * 5 = 25 个进程提供服务的。
nginx
的话一般用于反向代理和负载均衡,假设你有两个web应用运行在服务器本地:
http://127.0.0.1:5000 博客
http://127.0.0.1:8080 论坛
然后你想通过域名来分别访问这两个应用,例如
http://baidu.com/blog 博客
http://baidu.com/bss 论坛
那么这就可以通过 nginx 来配置。
gevent
是协程的一个库,一般用于 IO密集型
应用,不建议使用。如果是IO密集型
应用,建议使用 Tornado
rrreee
5
个合适。
supervisor
是一个进程管理工具,可以用于管理N多的进程,不仅仅是Gunicorn
,我什至用来管理Redis
。确实,supervisor
中也存在类似worker
数量的东西,叫procs
,其实是进程数量,也就是说你配置了几个, supervisor
就会帮你启动几个进程。 🎜
🎜需要注意的是,supervisor
和Gunicorn
的worker 是独立的,假设两个你都设置为5 的话,那事实上会有5 * 5 = 25 个进程提供服务的。 🎜
nginx
的话一般用于反向代理和负载均衡,假设你有两个web应用运行在服务器本地:🎜
gevent
是协程的一个库,一般用于 IO密集型
应用,不建议使用。如果是IO密集型
应用,建议使用 Tornado
框架进行编写。 🎜
🎜差不多就这么多了,建议多看官方文档。 🎜