2009-10-05 7 views
1

Je cours Django en tant que fastcgi par flup, servi par lighttpd, communiquant via des sockets.flup/fastcgi cpu utilisation sous conditions

Quelle est l'utilisation du processeur attendue pour chaque thread fastcgi sans charge? Au démarrage, chaque thread s'exécute pendant un certain temps à 3-4% d'utilisation du processeur, puis revient à environ 0.5% en l'espace de quelques heures. Il ne descend pas en dessous de ce niveau.

Est-ce normal que l'utilisation de l'UC soit normale? Est-ce que j'ai un bogue dans mon code qui fait que la boucle inactive nécessite plus de traitement qu'elle ne le devrait? Je m'attendais à ce que le processus n'utilise pas de CPU mesurable quand il était complètement inactif.

Je ne fais rien de complètement compliqué avec Django, certainement rien qui devrait nécessiter un traitement prolongé. Je me rends compte que ce n'est pas beaucoup de charge, mais si c'est un bug que j'ai introduit, je voudrais le réparer.

Répondre

2

J'ai regardé cela sur django fonctionnant comme FastCGI sur les deux Slicehost (django 1.1, Python 2.6) et Dreamhost (django 1.0, Python 2.5), et je peux dire ceci:

Exécution des spectacles de commande top les processus utilisent une grande quantité de CPU pour démarrer pendant ~ 2-3 secondes, puis descendent à 0 presque immédiatement. Exécution de la commande ps aux après le démarrage de l'application django montre quelque chose de similaire à ce que vous décrivez, cependant cela est réellement trompeur. A partir des pages de manuel pour Ubuntu ps:

utilisation du processeur est actuellement exprimé en le pourcentage de temps passé à courir pendant toute la durée de vie d'un processus . Ce n'est pas idéal, et n'est pas conforme aux normes auxquelles ps se conforme par ailleurs. L'utilisation de l'unité centrale est peu susceptible de totaliser exactement 100%.

Fondamentalement, la colonne% de CPU indiqué par ps est en fait une moyenneau fil du temps le processus a été en cours d'exécution. La désintégration que vous voyez est due au pic initial élevé suivi par l'inactivité étant moyennée au fil du temps.

+0

Merci! Meilleure solution à un problème qui pourrait se transformer en une chasse à l'oie sauvage ... –

0

Vos threads fast-CGI ne doivent pas consommer de CPU (visible) s'il n'y a pas de demandes à traiter.

Vous devriez étudier la charge que vous décrivez. J'utilise la même architecture et mes threads sont complètement inactifs.

Questions connexes