Question

Je joue avec Heroku pour tester la qualité des applications Django.

J'ai créé un projet simple avec deux actions:

  1. Retour Simple Hello World
  2. génère une image et envoyez-la comme réponse
  3. J'ai utilisé siege -c10 -t30s pour tester à la fois Django Dev Server et GunCorn (à la fois en cours d'exécution sur Heroku).Ce sont mes résultats:

    Simple Hello World
    - Django dev

    Lifting the server siege...      done.
    Transactions:                376 hits
    Availability:             100.00 %
    Elapsed time:              29.75 secs
    Data transferred:           0.00 MB
    Response time:              0.29 secs
    Transaction rate:          12.64 trans/sec
    Throughput:             0.00 MB/sec
    Concurrency:                3.65
    Successful transactions:         376
    Failed transactions:               0
    Longest transaction:            0.50
    Shortest transaction:           0.26
    

    - Gunicorn

    Lifting the server siege...      done.
    Transactions:                357 hits
    Availability:             100.00 %
    Elapsed time:              29.27 secs
    Data transferred:           0.00 MB
    Response time:              0.27 secs
    Transaction rate:          12.20 trans/sec
    Throughput:             0.00 MB/sec
    Concurrency:                3.34
    Successful transactions:         357
    Failed transactions:               0
    Longest transaction:            0.34
    Shortest transaction:           0.26
    

    Images génératrices
    - Django dev

    Lifting the server siege...      done.
    Transactions:                144 hits
    Availability:             100.00 %
    Elapsed time:              29.91 secs
    Data transferred:           0.15 MB
    Response time:              1.52 secs
    Transaction rate:           4.81 trans/sec
    Throughput:             0.01 MB/sec
    Concurrency:                7.32
    Successful transactions:         144
    Failed transactions:               0
    Longest transaction:            4.14
    Shortest transaction:           1.13
    

    - Gunicorn

    Lifting the server siege...      done.
    Transactions:                 31 hits
    Availability:             100.00 %
    Elapsed time:              29.42 secs
    Data transferred:           0.05 MB
    Response time:              7.39 secs
    Transaction rate:           1.05 trans/sec
    Throughput:             0.00 MB/sec
    Concurrency:                7.78
    Successful transactions:          31
    Failed transactions:               0
    Longest transaction:            9.13
    Shortest transaction:           1.19
    

    j'ai utilisé
    - Django 1.4
    - Gunicorn 0.14.6
    - VENV

    Pourquoi les hommes armés sont-ils si lents?

    // mise à jour
    Les deux tests fonctionnaient dans le respiration de Heroku Dev Server signifie Standard Django Server - Il peut être exécuté par gen 11a href="htttps://devcenter.heroku.com/articles/django#UPU_A_DIFFERENT_WSGI_SERVERT "REM="nofollow"> ici .

Était-ce utile?

La solution

sont les mêmes paramètres?Django 1.4 Dev Server est multithreadé par défaut et il n'y a que 1 travailleur de synchronisation dans GunCorn Par défaut Config.

Autres conseils

Vous allez avoir à configurer Profilage d'application pour obtenir un aperçu deOù est exactement le problème.

Peut-être que la vitesse de votre connexion Internet est un goulot d'étranglement?Le téléchargement des données de Heroku est évidemment plus lent que le déplacement de Localhost (je suppose que Django dev Server est exécuté à Localhost).Cela peut expliquer pourquoi les points de repère avec de petites réponses (hellowords) sont aussi rapides et les points de repère avec de grandes réponses (images) sont lents pour Heroku.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top