2010-02-03 23 views
5

Uso de Apache 2.2 y mod_perl en Ubuntu 8.04 Tengo varias aplicaciones en un servidor. Usando Apache en el modo pre-horquillado. Por lo general, las cosas funcionan bien, pero de vez en cuando veo uno de los procesos Apache que usa el 100% de la CPU.¿Cómo puedo rastrear solicitudes intensivas de CPU en mod_perl?

Hay varios sitios web en el servidor con sus propios VirtualHosts y hay y el servidor SVN se ejecuta a través de Apache.

¿Cómo podría rastrear qué aplicación y qué llamadas en esa aplicación generan la carga alta?

Respuesta

4

Devel::NYTProf es casi el mejor perfilador de Perl en este momento, con Devel::NYTProf::Apache para perfilar fácilmente aplicaciones mod_perl.

Ver Tim Bunce: NYTProf v2 – A major advance in perl profilers para obtener una visión general bonita con imágenes.

Desafortunadamente, Devel :: NYTProf no está preempaquetado en Ubuntu Hardy. (Está preempaquetado en Jaunty, Karmic, Lucid y más tarde). Puede usar algunos trucos aptos para instalar paquetes de esas distribuciones, instalar desde CPAN o simplemente actualizar ;-)

+0

una vez que conozco la (s) solicitud (es) que causa el problema, puedo intentar crear un perfil, pero agregar el generador de perfiles a todas las solicitudes me parece una mala idea, al menos a primera vista – szabgab

0

Si tiene una gran repositorio de subversión y autorización basada en ruta habilitada en su configuración de apache verá algunas tareas apache de CPU de larga ejecución. Probablemente también tenga quejas de los usuarios de subversión sobre las confirmaciones y actualizaciones lentas, junto con los errores 503 y la subversión que se queja de las respuestas SSL truncadas. Si este es el caso, haría de la subversión mi principal sospechoso.

0

Utilice un formato de registro personalizado o escriba un PerlLogHandler que registre la información de solicitud junto con el PID y la información de uso de recursos. Ver, por ejemplo, Randal's Web Techniques Column 48.

Cuestiones relacionadas