Comment résoudre une charge CPU élevée par apache? (Ubuntu + ec2)

Je configure une instance dans Amazon EC2, un serveur Ubuntu 10.04 exécutant apache2, php5 et mysql.

Avec moins de 10 utilisateurs du système, le serveur reçoit 20%, 30%, 40% de la charge du processeur.

En utilisant top je vois dans les premières lignes:

11121 www-data 20 0 71940 20m 11m S | 22.6 | 1.2 | 0: 00.68 apache2
10108 www-data 20 0 72196 22m 12m S | 21,9 | 1.3 | 1: 15.81 apache2
11122 www-data 20 0 71936 20m 11m S | 7.3 | 1.2 | 0: 00.68 apache2
10111 www-data 20 0 72196 22m 12m S | 1.7 | 1.3 | 1: 16.43 apache2

La sum de CPU dans ces 4 lignes est 53,5.

Comment puis-je voir plus en détail les processus?
Comment puis-je examiner les scripts en cours d’exécution, le temps nécessaire, la quantité de processeur que chacun consum?

Merci.

J’ai résolu le problème en installant Apache mod Status – http://httpd.apache.org/docs/2.0/mod/mod_status.html . Vous pouvez y voir chaque PID sur quelle URL est utilisée.

J’espère que ça aide n’importe qui …

Une façon de voir ce que cela fait est d’utiliser lsof (vous devrez peut-être l’installer). Pour voir ce que les processus dans votre exemple accèdent, procédez comme suit:

lsof -p 11121,10108,11122,10111

Cela vous montrera tous les fichiers ouverts par ce processus. Habituellement, un processeur élevé sur le processus Apache est dû à quelque chose que le site Web essaie de faire côté serveur.

Vous pouvez utiliser strace sur le processus parent pour avoir une meilleure idée de ce qu’il fait.