Estoy trabajando en la optimización de mi sitio, y he tenido el inicio de sesión de consultas lentas de MySQL por unos días, pero después de pasar por> 260M de consultas, solo registró 6 consultas lentas, y esas fueron especiales ejecutadas por mí en phpMyAdmin. Me pregunto si hay algo para registrar el tiempo de ejecución lento de la página PHP para que pueda encontrar ciertas páginas que están acaparando recursos, en lugar de consultas específicas.PHP equivalente al registro lento de consultas de MySQL?
Respuesta
En primer lugar, está xdebug, que tiene un generador de perfiles, pero no lo usaría en una máquina de producción, ya que inyecta código y lleva la velocidad a un rastreo. Muy bueno para entornos de prueba, sin embargo.
Si desea medir las velocidades en un entorno productivo, simplemente mediría manualmente. microtime()
es la función para estas cosas en PHP. Asumiendo que tiene un header.php y una footer.php que consiguen llamado por todos los scripts PHP:
# In your header.php (or tpl)
$GLOBALS['_execution_start'] = microtime(true);
# In your footer.php (or tpl)
file_put_contents(
'/tmp/my_profiling_results.txt',
microtime(true) - $GLOBALS['_execution_start'] . ':' . print_r($_SERVER, true) . "\n",
FILE_APPEND
);
Gracias, su segunda sugerencia es una buena idea. Esperaba que hubiera alguna manera de automatizar esto, pero esto funciona igual de bien sin mucho esfuerzo. –
Oh, una cosa para agregar a esto. Se debe agregar FILE_APPEND como indicador, por lo que no solo obtiene el acceso más reciente en el registro. –
Thx, siempre me olvido de eso :) – soulmerge
Usted puede envolver las secuencias de comandos en un simple contador de tiempo, así:
/*in your header or at the top of the page*/
$time_start = microtime(true);
/* your script goes here */
/*in your footer, or at the bottom of the page*/
$time_end = microtime(true);
$time = $time_end - $time_start;
echo "It took $time seconds\n";
Nota que agregará dos ejecuciones de función y un poco de matemáticas como sobrecarga.
se puede no registrar una función de desconexión que llama a su fin al temporizador? http://us3.php.net/register_shutdown_function De esa manera solo necesita iniciar el temporizador donde crea que podría haber un problema.
¿qué pasa con auto_prepend_file y auto_append_file, acaba de escribir un post sobre ello http://blog.xrado.si/post/php-slow-log
¿es esta la publicación correcta? http://blog.xrado.si/post/php-slow-log –
sí, tengo un nuevo dominio – xrado
Si está usando FastCGI para ejecutar sus scripts PHP puede utilizar el Administrador de procesos FastCGI (FPM, php-FPM), que también es compatible con una llamado "slowlog".
Puede habilitarlo en la configuración php de su php-fpm (para debian esto está en /etc/php5/fpm/pool.d/www.conf
) con las opciones de configuración: request_slowlog_timeout y slowlog.
request_slowlog_timeout
El tiempo de espera para servir a una sola petición después de lo cual la traza PHP se vuelca en el archivo 'slowlog'. Un valor de '0' significa 'Desactivado'. Unidades disponibles: s (econds) (predeterminado), m (inutes), h (nuestro) o d (ays). Valor por defecto: 0.
slowlog
El archivo de registro para las solicitudes lentas. Valor predeterminado: # INSTALL_PREFIX #/log/php-fpm.log.slow.
de http://php.net/manual/en/install.fpm.configuration.php
Véase también: http://php.net/manual/en/install.fpm.php y http://rtcamp.com/tutorials/php/fpm-slow-log/
- 1. MySQL registro de consultas lento - ¿qué tan lento es lento?
- 2. ¿Cómo puedo habilitar el registro lento de consultas de MySQL sin reiniciar MySQL?
- 3. MySQL Registro de Consultas no válidas
- 4. Creador de consultas PHP MySQL
- 5. ¿Qué significa "SELECT/*! N SQL_NO_CACHE */* FROM` mytable` "en el registro lento de consultas de MySQL?
- 6. Obtener ubicación del registro de consultas lentas de MySQL a través de PHP
- 7. Consultas de búsqueda de PHP mysql
- 8. Generador de consultas MySQL clase PHP
- 9. El registro de consultas de Mysql no funciona
- 10. Habilitación del registro de consultas generales de MySQL con JDBC
- 11. ¿Cómo puedo habilitar el registro de consultas lentas de MySQL en mi servidor?
- 12. MySQL IFNULL equivalente para php
- 13. Caché de consultas MySQL
- 14. Evitar que aparezca una sola consulta en el registro lento de consultas
- 15. ¿Asociar múltiples consultas MySQL con PHP?
- 16. consultas MySQL vs php foreach múltiple bucles
- 17. Consultas PHP MySQL con% s y% d
- 18. Equivalente al RowID de Oracle en MySQL
- 19. Solo registro inserte, actualice y elimine consultas mysql
- 20. ¿Cómo ejecutar dos consultas mysql como una en PHP/MYSQL?
- 21. Analizador de consultas MySQL
- 22. Simular consultas de mysql
- 23. PHP equivalente al símbolo de Ruby
- 24. ¿Cuál es la unidad de tiempo en el registro de consultas lentas de MySQL?
- 25. MySQL como% de consultas es lento, con un índice de texto
- 26. Registro NHibernate Consultas SQL
- 27. MySQL consultas lentas
- 28. Consultas SQL: ¿qué tan lento es demasiado lento?
- 29. Cómo registrar consultas lentas en MySQL de alojamiento compartido?
- 30. ¿Cuál es el equivalente de consulta MySQL de PHP strip_tags?
Podría ser que las consultas phpMyAdmin son de baja prioridad, que causaría que se presenten como 'lento' – karim79
sólo estaba mencionando que decir que ninguna era una consulta que debía optimizarse en el sitio. –
Si desea mediciones más precisas que en la respuesta aceptada, para encontrar en qué parte de un documento se encuentra su cuello de botella, puede consultar Benchmark from PEAR. Le permite establecer marcadores en su código para encontrar los cuellos de botella. –