python - gunicorn supervisor nginx 配置问题,该给gunicorn几个worker,有没有必要上gevent
PHPz
PHPz 2017-04-18 09:15:36
0
4
486

配置了一下午环境,跑起来是跑起来了,但是寻摸着一次琢磨透他们嘛。

鉴于gunicorn,supervisor用的不多,网络上找到资料很少(中文)

英文的也有些不太好懂。

想问下gunicorn可以设置worker设置几个比较合适呢。阿里云服务器,双核的。

supervisor是不是也有设置类似worker的地方,配置一下午迷糊了。

nginx呢。
晕乎乎的。

另外gevent不太了解,这个有必要上吗。我看配置起来蛮简单的。有什么优缺点呢。

谢谢各位。

PHPz
PHPz

学习是最好的投资!

répondre à tous(4)
阿神

Qu'il s'agisse de worker ou de Nginx de Process, cela est déterminé en fonction du nombre de CPU cœurs de votre serveur. Votre Alibaba Cloud n'a que des dual core (2个核) ?

Je ne sais pas grand chose sur

gunicorn, mais uWSGI a aussi un worker, qui est généralement réglé sur 核数X2.

NginxOn dit que 8 les processus suffisent.

Recherchez en ligne Nginx l'optimisation, il devrait y avoir pas mal de tutoriels.

Ty80

À propos de worker, il est fondamentalement recommandé d'être une à deux fois le nombre réel de CPU cœurs. J'utilise généralement autant de worker qu'il y a de cœurs.

Quant à supervisor, je ne semble pas avoir vu les paramètres liés à worker.

En fait, j'utilise la combinaison de uwsgi + supervisor + nginx. Vous pouvez google télécharger les détails. J'ai juste suivi le fonctionnaire wiki et je n'ai rien utilisé d'extraordinaire.

PS : abandonnez les documents chinois, la plupart d'entre eux sont en mauvais état. Même si l'anglais n'est pas facile à lire, au moins vous ne pouvez pas entrer dans la fosse

.
小葫芦
  1. Le nombre de Workers Gunicorn est généralement configuré d'un point de vue expérience 2 * core + 1, core fait référence au nombre de cœurs.

  2. Le superviseur n'a pas pour concept de configurer le nombre de travailleurs, mais il configure le nombre de processus numprocs Ce champ

  3. .
  4. Si vous utilisez gunicorn, il est généralement recommandé de configurer worker_class sur gevent, vous le savez.

左手右手慢动作

gunicorn est un serveur WSGI couramment utilisé dans les applications actuelles, uWSGI et gunicorn sont tous deux des choix courants, et les performances des deux ne sont pas très éloignées. 2 * cpu数 + 1 L'exemple de valeur du nombre configuré de travailleurs sur le site officiel est

, et l'exemple du site officiel est

import multiprocessing

bind = "127.0.0.1:8000"
workers = multiprocessing.cpu_count() * 2 + 1
5Donc, pour le serveur dual-core du sujet, il doit être défini sur , ce qui est approprié.

supervisor et Gunicorn sont un outil de gestion de processus qui peut être utilisé pour gérer de nombreux processus, pas seulement Redis, je l'utilise même pour gérer supervisor. En effet, il y a quelque chose de similaire à la quantité worker dans procs, appelée supervisor, qui est en fait le nombre de processus. C'est-à-dire que si vous en configurez quelques-uns,

vous aidera à démarrer plusieurs processus. .

supervisorIl est à noter que les travailleurs de Gunicorn et

sont indépendants. En supposant que vous définissez les deux sur 5, il y aura en réalité 5 * 5 = 25 processus fournissant des services.

nginx

est généralement utilisé pour le proxy inverse et l'équilibrage de charge. Supposons que deux applications Web s'exécutent localement sur le serveur :
    .
  • http://127.0.0.1:5000Blog
  • http://127.0.0.1:8080 Forum

Ensuite vous souhaitez accéder à ces deux applications séparément via des noms de domaine, par exemple
  • http://baidu.com/blog Blog
  • http://baidu.com/bss Forum

Ensuite, cela peut être configuré via nginx.

geventIO密集型 est une bibliothèque pour les coroutines. Elle est généralement utilisée dans les applications IO密集型 et n'est pas recommandée. S'il s'agit d'une application Tornado, il est recommandé d'utiliser le framework

pour l'écriture.

C'est tout. Il est recommandé de lire davantage de documents officiels.
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal