2010-12-06 12 views
11

Estoy jugando con la idea de implementar algo que codifica los perfiles en el servidor de producción y quería consejos sobre las mejores prácticas. Obviamente, es una mala idea detallar TODAS las solicitudes debido a la sobrecarga adicional, por lo que estaba buscando algunas técnicas que invoquen aleatoriamente el generador de perfiles por solicitud. Algo así como 1 perfil por cada 10,000 solicitudes.Código de generación de perfiles en la producción

Sé que hay una manera de lograr esa tarea con Facebook XHProf Profiler, pero esperaba una solución similar con xdebug.

Así que mis preguntas son (asumiendo Xdebug es el generador de perfiles):

  1. Es este tipo de función, incluso recomendable? Me gustaría obtener algunos datos del mundo real del entorno de producción, pero no si significa destruir la experiencia del usuario debido a la sobrecarga.
  2. ¿La instalación de xdebug en producción abre el servidor a atacantes/explotadores de alguna forma (suponiendo que el depurador no esté habilitado)? ¿Hay una configuración de placa de caldera para este tipo de configuración?
  3. ¿Cuál es la mejor manera de activar el generador de perfiles para un tamaño de muestra adecuado?

Cualquier otra idea sobre el asunto sería muy apreciada.

Respuesta

9

No reinventar la rueda. XHProf Profiler es definitivamente la mejor herramienta para el trabajo cuando se trata de crear un código de perfil dentro de un entorno de producción.

Sus opciones para habilitar perfiles dentro Xdebug se limitan a cualquiera que tenga perfiles siempre a través de un archivo php.ini o archivo .htaccess través xdebug.profiler_enable = 1 o girar de forma selectiva sobre los perfiles a través de xdebug.profiler_enable_trigger = 1. En este último caso, debe tener un conjunto de parámetros XDEBUG_PROFILE GET o POST o enviar una cookie con el nombre XDEBUG_PROFILE. Esto significa que si alguien travieso lo desea, podría ralentizar su servidor simplemente añadiendo ese parámetro GET a un grupo de solicitudes.

La única opción que pude ver que perfiló una muestra relativamente aleatoria de solicitudes es hacer que un script cron coloque un archivo .htaccess en el directorio apropiado, periódicamente, y luego lo saque del directorio. Aún así, eso es menos que deseable.

Si decide ir con XHProf, eche un vistazo a XHGUI.

http://phpadvent.org/2010/profiling-with-xhgui-by-paul-reinheimer

+0

Gracias por la sugerencia John. Leeré más en xhprof y le daré más consideración. –

Cuestiones relacionadas