comment config Django et comment exécuter les travailleurs Gunicorn avec des performances de cpu?

Im using, gunicorn django_project.wsgi:application --bind=127.0.0.1:8866 --daemon comme ligne de commande pour exécuter mon django sur le serveur avec 6 processeurs et ram de 14 Go, mais je n’ai pas installé les ouvriers, j’utilise 2 applications sur ce serveur, comment puis-je obtenir des performances maximales, en utilisant toutes les mémoires RAM et les processeurs.

    Vous pouvez passer un argument de ligne de commande pour spécifier le nombre de travailleurs que vous souhaitez exécuter, voir: http://docs.gunicorn.org/en/stable/settings.html#worker-processes

    Cependant, si vous souhaitez obtenir par programmation le nombre de cœurs, mieux vaut passer un paramètre pour lire la configuration d’un module, comme:

     gunicorn django_project.wsgi:application -c gunicorn.py.ini 

    Et le contenu de gunicorn.py.ini serait:

     from multiprocessing import cpu_count bind = '127.0.0.1:8866' daemon = True workers = cpu_count() 

    Il existe également une formule commune utilisée pour spécifier le nombre de travailleurs:

     workers = cpu_count() * 2 + 1 

    Voir le raisonnement derrière ceci sur: http://docs.gunicorn.org/en/stable/design.html#how-many-workers

    En ce qui concerne l’utilisation de la mémoire, je pense qu’il n’y a pas grand chose à faire, ils vont utiliser autant de mémoire qu’ils en ont besoin. Cependant, vous pouvez essayer quelques autres choses pour optimiser vos travailleurs. Vous pouvez spécifier la worker_class dans le fichier de configuration, par exemple:

     worker_class = 'gevent' 

    Et testez celui qui vous convient le mieux, voir la liste des classes de travailleurs disponibles sur: http://docs.gunicorn.org/en/stable/settings.html#worker-class

    De plus, en spécifiant l’option max_requests ( http://docs.gunicorn.org/en/stable/settings.html#max-requests ), vous pouvez forcer le redémarrage des travailleurs après un nombre spécifié de demandes. Ceci est essentiellement utile si votre code perd de la mémoire pour une raison quelconque, de sorte que, au redémarrage, le système d’exploitation les nettoyera.

     max_requests = 1000 # a reasonable value