2010-02-03 5 views
5

Avec Apache 2.2 et mod_perl sous Ubuntu 8.04, j'ai plusieurs applications sur un serveur. Utiliser Apache en mode pré-forking. Habituellement, les choses fonctionnent bien, mais une fois de temps en temps, je vois un processus Apache utilisant 100% du CPU.Comment puis-je suivre les demandes de CPU intensive dans mod_perl?

Il existe plusieurs sites Web sur le serveur avec leurs propres VirtualHosts et est et le serveur SVN fonctionne via Apache.

Comment puis-je savoir quelle application et quels appels dans cette application génèrent la charge élevée?

Répondre

4

Devel::NYTProf est à peu près le premier profileur pour Perl en ce moment, avec Devel::NYTProf::Apache pour profiler facilement les applications mod_perl.

Voir Tim Bunce: NYTProf v2 – A major advance in perl profilers pour un joli aperçu avec des images.

Malheureusement, Devel :: NYTProf n'est pas pré-emballé dans Ubuntu Hardy. (Il est préemballé dans Jaunty, Karmic, Lucid, et plus tard.) Vous pouvez soit utiliser une supercherie apt pour installer des paquets de ces distributions, installer à partir de CPAN, ou simplement mettre à niveau ;-)

+0

une fois que je sais quelle (s) demande (s) provoquent le problème je peux essayer de les profiler mais ajouter le profileur à toutes les demandes semble être une mauvaise idée - au moins à première vue – szabgab

0

Si vous avez un grand Le référentiel subversion et l'autorisation basée sur le chemin sont activés dans votre configuration apache. Vous allez voir des tâches apache de longue durée et à haute CPU. Vous aurez probablement aussi des plaintes de la part des utilisateurs de Subversion à propos des commits lents et des mises à jour, ainsi que des erreurs 503 et subversion se plaignant des réponses SSL tronquées. Si c'est le cas, je ferais de Subversion mon principal suspect.

0

Utilisez un format de journal personnalisé ou écrivez un PerlLogHandler qui enregistre les informations de demande avec les informations PID et d'utilisation des ressources. Voir, par exemple, Web Techniques Column 48 de Randal.