Quel est le nombre approprié de Gunicorn travailleurs pour chaque Type d'Instance Amazon?
Je suis en train d'essayer de comprendre ce que le nombre de travailleurs pour chaque Type d'Instance Amazon. J'ai utilisé pour exécuter un Gunicorn travailleur, cependant, qui s'est avéré être assez lente.
De nombreux développeurs sont actuellement à l'aide de cette formule pour évaluer combien de personnes devront être adaptés:
NUM_WORKERS=3 #recommended formula here is 1 + 2 * NUM_CORES
Le problème, je vais avoir, c'est qu'Amazon n'est pas tout à fait clair que le nombre de cœurs de chaque instance est en cours d'exécution. Par exemple, un M1 Petite Instance a 1 Unité de Calcul EC2 (1 virtual core avec 1 Unité de Calcul EC2)
Ce qui ne signifie essentiellement? Qu'il a un cœur? ou qu'il dispose de deux cœurs?
Vous devez vous connecter pour publier un commentaire.
La Amazon EC2
m1.small
type d'instance a certainement un cœur virtuel uniquement; à partir d'un filetage/travailleur point de vue, vous pouvez ignorer la Unité de Calcul EC2 (ECU) spécification entièrement et prendre le nombre de (virtuel) de cœurs sur le Types d'instances Amazon EC2 page littéralement, en multipliant par le nombre de Processeurs, le cas échéant (uniquement pour les instances en cluster).Si vous voulez éviter de faire le calcul et/ou d'avoir accès au programme, vous pourriez avoir un coup d'oeil à la missingcloud projet - la aws.json dataset dispose d'un des cœurs de champ à l'intérieur de la instance_types collection, par exemple:
Je sais que c'est une vieille question. Mais je pense que j'ai une meilleure réponse à cette question. Gunicorn docs suggère que 2n+1 [
gunicorn -w <2n+1> myapp:wsgi
] est une bonne estimation du nombre de travailleurs (Oui, n = nombre de cœurs). Je suis venu avec un petit script shell pour appliquer cette formule. Tout ce que vous devez faire est ceci:Où la commande
sera de retour, le nombre total réel de cœurs de processeurs (n). Donc
équivaut à 2n+1 formule.
Il s'2n+1 formule pour tous les linux sur des machines. Vous n'avez pas besoin de connaître le nombre de travailleurs pour chaque type d'instance ou quelque chose comme ça.
Référence: http://dhilipsiva.com/2015/10/22/appropriate-number-of-gunicorn-workers.html
$(( 2 * `nproc` + 1 ))
pour obtenir le nombre d'unités de traitement disponibles?Bâtiment sur epicbrew de l' de travail, voici comment lancer 2N+1 Gunicorn travailleurs, où N = nombre de cœurs de PROCESSEUR:
Cela fonctionne sur Linux et macOS! Plus de détails sur la John Dit Tout blog.
Un moyen facile de voir comment de nombreux de la cpu sont détectés est de lancer haut et appuyez sur "1" pour afficher le nombre de processeurs. Vous verrez cpu0, cpu1, cpu2 etc.