2008-09-28 4 views
4

J'utilise souvent la commande "top" pour voir ce qui prend des ressources. Généralement, il propose une longue liste de processus Apache httpd, ce qui n'est pas très utile. Existe-t-il un moyen de voir une liste similaire, mais telle que je pourrais voir quels scripts PHP etc. ces processus httpd sont en cours d'exécution?Haut et httpd - démystifier ce qui est réellement en cours d'exécution

Répondre

4

Si vous êtes préoccupé par les processus longs (c'est-à-dire les requêtes dont l'exécution prend plus d'une seconde ou deux), vous pourrez en avoir une idée en utilisant mod_status d'Apache. Voir le documentation, et un example of the output (de www.apache.org). Ce n'est pas unique à PHP, mais s'applique à tout ce qui s'exécute dans un processus apache. Notez que la sortie de l'état de www.apache.org est disponible publiquement à des fins de démonstration - vous voudriez restreindre l'accès au vôtre afin que tout le monde ne puisse pas le voir.

+0

Note à moi-même: sudo pargs -e -a PID est parfois utile pour en savoir plus sur un processus en cours d'exécution. – Bemmu

+0

pstack semble aussi très très utile pour voir ce que fait un programme – Bemmu

0

Les scripts PHP arrivent si vite, que le top ne vous montre pas beaucoup. Ou ce serait zip assez rapidement. La plupart des webrequests sont assez rapides. Je pense que votre meilleur pari serait d'avoir un certain type de processeur de journal en temps réel, qui a gardé un oeil sur vos journaux d'accès et met à jour les statistiques de temps d'exécution, d'utilisation de la mémoire et autres.

0

Vous pouvez faire en sorte que vos pages PHP soient chronométrées et écrire leur chemin et leur temps d'exécution dans un fichier ou une base de données. Notez que cela ralentirait tout pendant que vous surveilliez, mais cela servirait de bonne méthode de mesure.

Ce ne serait pas si interactif si. Vous seriez capable d'obtenir des résultats quotidiens ou hebdomadaires, mais il serait difficile de voir quelque chose de significatif en quelques minutes ou quelques heures.

1

Il existe un utilitaire basé sur ncurses de type supérieur appelé apachetop qui fournit une analyse de journal en temps réel pour Apache. Malheureusement, le projet a été abandonné et le code souffre de quelques bugs, mais il est en fait très utilisable. Ne l'exécutez pas en tant que root, exécutez-le en tant que n'importe quel utilisateur ayant accès aux fichiers journaux du serveur Web et tout devrait bien se passer.

Questions connexes