SlideShare ist ein Scribd-Unternehmen logo
1 von 27
Downloaden Sie, um offline zu lesen
Herramientas para la medición del
      desempeño en PHP

       Carlos Nacianceno
Quién soy?
                      • PHP desde hace 12
                        años

                      • Zend Certified
                        Engineer
  Carlos Nacianceno
                      • Instructor de cursos
                        Zend

                      • El Taller Web
Introducción
• Cuando se desarrolla, pocas veces se toma
  en cuenta los recursos utilizados por las
  aplicaciones

• Se ignora si un script consume muchos
  recursos y más concretamente en que
  procesos.

• No hay conocimiento de herramientas que
  nos ayuden a determinar tales cosas.
¿Qué es el desempeño?
• La cantidad de trabajo o procesos que se
  ejecuta en comparación con los recursos
  disponibles.
  – Que tanto hacemos con lo que tenemos


• Alto/Bajo desempeño
  – Aprovechamiento de los recursos, no al tamaño
Recursos
• Recursos para una aplicación web
  – Procesamiento
  – Memoria
  – Ancho de Banda


• Tradicionalmente
  – Limitados
  – Costosos
  – Lenta disposición
Desempeño
• Generalmente el buen desempeño puede
  reconocerse por:
  –   Baja utilización de los recursos
  –   Corto tiempo de respuesta
  –   Transmisión de datos eficiente
  –   Alta disponibilidad



  Para el usuario es la rapidez con la que
  ve los datos
Benchmarking
• Medir comparativamente

• Punto de vista externo de nuestra aplicación
  – Peticiones HTTP
  – Web server
  –
• Comparaciones justas!!!
Benchmarking
• Medir
  – Si determinada URL tiene problemas
  – Un cambio en el código
  – Cambio en X, o Y


• Obtendremos información concreta con
  medidas de como se ve desde afuera
  nuestro sitio o aplicación.
Apache Benchmarking
• Saber cómo se esta desempeñando el Web
  server
  – Y la aplicación que esta sirviendo


• Herramienta CLI

• Incluida con cualquier instalación de Apache
Apache Benchmarking
• Ejecución



• Donde
  – -n es el número de peticiones que ab realizará en
    esta sesión
  – -c es el número de peticiones concurrentes
Apache Benchmarking
Apache Benchmarking
Siege
• Load Testing y Benchmarking HTTP

• Permite probar aplicaciones bajo carga
  simulada

• Número de usuarios simulados configurable

• Incluido en algunas distro Linux
   – http://www.joedog.org/pub/siege/
Siege
Siege

• Parte de los resultados que nos entrega son:
   – Transacciones totales
   – Tiempo total del test
   – Tiempo promedio de respuesta para cada
     usuario
   – Concurrencia
   – Transacciones exitosas
Siege
Perfilado
• Recolección de información sobre la
  aplicación durante su ejecución para un
  análisis.

• Identifica cuellos de botella

• Determinar en que punto de la ejecución:
  – Se uso más memoria
  – Tomó más tiempo en ejecutar
Zend Debugger
• Extensión PHP

• Freeware instalable a stack PHP prexistente

• Controla la ejecución y obtiene información

• Informes detallados de el desempeño de la
  ejecución

• Perfilado bajo demanda
  – Local
  – Remoto
Zend Debugger
• Cliente (IDE) hace una petición al Servidor
  1. Zend Debugger se activa y controla la ejecución
  2. Captura la información detallada de la misma
  3. Regresa los resultados al cliente
     •   Gráfica
     •   Estadísticas de ejecución
     •   Flujo de ejecución
     •   Cobertura de código
Zend Debugger
Xdebug
• Extensión PHP

• Open Source
  – PECL


• Registra lo ocurrido en la ejecución y genera
  esos registros para su análisis

• Perfilado encendido o apagado
Xdebug
• Se activa el perfilador de Xdebug
  1. xdebug.profiler_enable a 1
     •    xdebug.profiler_enable_trigger
  2. xdebug.profiler_output_dir
  3. Captura información de la ejecución
  4. Guarda resultados
     •   Gráfica ( KcheGrind, WinGrind, WebGrind )
     •   Estadísticas de ejecución
     •   Flujo de ejecución
     •   Cobertura de código
Xdebug
Xhprof
• Extensión PHP

• Facebook (PECL)

• Más ligero que Xdebug
  – Compatible con KcheGrind y similares


• Modificar cada archivo PHP
  – xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);
  – $xhprof_data = xhprof_disable();
Optimización prematura
• Optimizar el código antes de saber donde
  están los cuellos de botella.

• Hacer cambios para intentar que la
  aplicación “sea más rápida”
  – Estos cambios resultan costosos en tiempo
  – “Tunear” el web server o sistema operativo sin
    “tunear” primero la aplicación
  – Simplemente escalar la plataforma con más
    recursos
Preguntas?
Gracias




                @igormx

               @eltallerweb
          http://eltallerweb.com

Weitere ähnliche Inhalte

Ähnlich wie Medir desempeño PHP con Apache Benchmark, Siege, Zend Debugger y Xdebug

Webinario mejorando el desempeño con zend server
Webinario   mejorando el desempeño con zend serverWebinario   mejorando el desempeño con zend server
Webinario mejorando el desempeño con zend serverEl Taller Web
 
Desarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por PruebasDesarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por Pruebas.. ..
 
Probando aplicaciones AngularJS
Probando aplicaciones AngularJSProbando aplicaciones AngularJS
Probando aplicaciones AngularJSRodrigo Pimentel
 
Dev ops with Data
Dev ops with DataDev ops with Data
Dev ops with Datannakasone
 
Mantenimiento y mejora continua de la performance de las aplicaciones
Mantenimiento y mejora continua de la performance de las aplicacionesMantenimiento y mejora continua de la performance de las aplicaciones
Mantenimiento y mejora continua de la performance de las aplicacionesAbstracta
 
Demostración: ¿Cómo acelera la plataforma Denodo su tiempo para obtener infor...
Demostración: ¿Cómo acelera la plataforma Denodo su tiempo para obtener infor...Demostración: ¿Cómo acelera la plataforma Denodo su tiempo para obtener infor...
Demostración: ¿Cómo acelera la plataforma Denodo su tiempo para obtener infor...Denodo
 
Juan Garrido - Corporate Forensics: Saca partido a tu arquitectura[RootedCON ...
Juan Garrido - Corporate Forensics: Saca partido a tu arquitectura[RootedCON ...Juan Garrido - Corporate Forensics: Saca partido a tu arquitectura[RootedCON ...
Juan Garrido - Corporate Forensics: Saca partido a tu arquitectura[RootedCON ...RootedCON
 
Rendimiento y velocidad en WordPress
Rendimiento y velocidad en WordPress Rendimiento y velocidad en WordPress
Rendimiento y velocidad en WordPress Dani Reguera Bakhache
 
Jose Luis Soria - Visual Studio Tour Plain Concepts - DevOps
Jose Luis Soria - Visual Studio Tour Plain Concepts - DevOpsJose Luis Soria - Visual Studio Tour Plain Concepts - DevOps
Jose Luis Soria - Visual Studio Tour Plain Concepts - DevOpsJose Luis Soria
 
Adaptacion y mejora continua de la performance de las aplicaciones
Adaptacion y mejora continua de la performance de las aplicacionesAdaptacion y mejora continua de la performance de las aplicaciones
Adaptacion y mejora continua de la performance de las aplicacionesGeneXus
 
Clase 2 - Construccion de los SI.ppt
Clase 2 - Construccion de los SI.pptClase 2 - Construccion de los SI.ppt
Clase 2 - Construccion de los SI.pptrogergrefa1
 
Azure Realtime analytics: Análisis de datos en tiempo real
Azure Realtime analytics: Análisis de datos en tiempo realAzure Realtime analytics: Análisis de datos en tiempo real
Azure Realtime analytics: Análisis de datos en tiempo realSoftware Guru
 
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de desplieguesSecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de desplieguesJose Luis Soria
 

Ähnlich wie Medir desempeño PHP con Apache Benchmark, Siege, Zend Debugger y Xdebug (20)

Webinario mejorando el desempeño con zend server
Webinario   mejorando el desempeño con zend serverWebinario   mejorando el desempeño con zend server
Webinario mejorando el desempeño con zend server
 
Flujo de desarrollo para drupal (PFC)
Flujo de desarrollo para drupal (PFC)Flujo de desarrollo para drupal (PFC)
Flujo de desarrollo para drupal (PFC)
 
Desarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por PruebasDesarrollo de Software Guiado por Pruebas
Desarrollo de Software Guiado por Pruebas
 
Probando aplicaciones AngularJS
Probando aplicaciones AngularJSProbando aplicaciones AngularJS
Probando aplicaciones AngularJS
 
PresentacióN Tesis
PresentacióN TesisPresentacióN Tesis
PresentacióN Tesis
 
Clase 11
Clase 11Clase 11
Clase 11
 
Dev ops with Data
Dev ops with DataDev ops with Data
Dev ops with Data
 
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOpsMeetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
 
Mantenimiento y mejora continua de la performance de las aplicaciones
Mantenimiento y mejora continua de la performance de las aplicacionesMantenimiento y mejora continua de la performance de las aplicaciones
Mantenimiento y mejora continua de la performance de las aplicaciones
 
DevOps+[Chef/Docker]
 DevOps+[Chef/Docker] DevOps+[Chef/Docker]
DevOps+[Chef/Docker]
 
Html5
Html5Html5
Html5
 
Demostración: ¿Cómo acelera la plataforma Denodo su tiempo para obtener infor...
Demostración: ¿Cómo acelera la plataforma Denodo su tiempo para obtener infor...Demostración: ¿Cómo acelera la plataforma Denodo su tiempo para obtener infor...
Demostración: ¿Cómo acelera la plataforma Denodo su tiempo para obtener infor...
 
Juan Garrido - Corporate Forensics: Saca partido a tu arquitectura[RootedCON ...
Juan Garrido - Corporate Forensics: Saca partido a tu arquitectura[RootedCON ...Juan Garrido - Corporate Forensics: Saca partido a tu arquitectura[RootedCON ...
Juan Garrido - Corporate Forensics: Saca partido a tu arquitectura[RootedCON ...
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Rendimiento y velocidad en WordPress
Rendimiento y velocidad en WordPress Rendimiento y velocidad en WordPress
Rendimiento y velocidad en WordPress
 
Jose Luis Soria - Visual Studio Tour Plain Concepts - DevOps
Jose Luis Soria - Visual Studio Tour Plain Concepts - DevOpsJose Luis Soria - Visual Studio Tour Plain Concepts - DevOps
Jose Luis Soria - Visual Studio Tour Plain Concepts - DevOps
 
Adaptacion y mejora continua de la performance de las aplicaciones
Adaptacion y mejora continua de la performance de las aplicacionesAdaptacion y mejora continua de la performance de las aplicaciones
Adaptacion y mejora continua de la performance de las aplicaciones
 
Clase 2 - Construccion de los SI.ppt
Clase 2 - Construccion de los SI.pptClase 2 - Construccion de los SI.ppt
Clase 2 - Construccion de los SI.ppt
 
Azure Realtime analytics: Análisis de datos en tiempo real
Azure Realtime analytics: Análisis de datos en tiempo realAzure Realtime analytics: Análisis de datos en tiempo real
Azure Realtime analytics: Análisis de datos en tiempo real
 
SecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de desplieguesSecondNug Febrero 2012 - Automatización de despliegues
SecondNug Febrero 2012 - Automatización de despliegues
 

Kürzlich hochgeladen

Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 

Kürzlich hochgeladen (19)

Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 

Medir desempeño PHP con Apache Benchmark, Siege, Zend Debugger y Xdebug

  • 1. Herramientas para la medición del desempeño en PHP Carlos Nacianceno
  • 2. Quién soy? • PHP desde hace 12 años • Zend Certified Engineer Carlos Nacianceno • Instructor de cursos Zend • El Taller Web
  • 3. Introducción • Cuando se desarrolla, pocas veces se toma en cuenta los recursos utilizados por las aplicaciones • Se ignora si un script consume muchos recursos y más concretamente en que procesos. • No hay conocimiento de herramientas que nos ayuden a determinar tales cosas.
  • 4. ¿Qué es el desempeño? • La cantidad de trabajo o procesos que se ejecuta en comparación con los recursos disponibles. – Que tanto hacemos con lo que tenemos • Alto/Bajo desempeño – Aprovechamiento de los recursos, no al tamaño
  • 5. Recursos • Recursos para una aplicación web – Procesamiento – Memoria – Ancho de Banda • Tradicionalmente – Limitados – Costosos – Lenta disposición
  • 6. Desempeño • Generalmente el buen desempeño puede reconocerse por: – Baja utilización de los recursos – Corto tiempo de respuesta – Transmisión de datos eficiente – Alta disponibilidad Para el usuario es la rapidez con la que ve los datos
  • 7. Benchmarking • Medir comparativamente • Punto de vista externo de nuestra aplicación – Peticiones HTTP – Web server – • Comparaciones justas!!!
  • 8. Benchmarking • Medir – Si determinada URL tiene problemas – Un cambio en el código – Cambio en X, o Y • Obtendremos información concreta con medidas de como se ve desde afuera nuestro sitio o aplicación.
  • 9. Apache Benchmarking • Saber cómo se esta desempeñando el Web server – Y la aplicación que esta sirviendo • Herramienta CLI • Incluida con cualquier instalación de Apache
  • 10. Apache Benchmarking • Ejecución • Donde – -n es el número de peticiones que ab realizará en esta sesión – -c es el número de peticiones concurrentes
  • 13. Siege • Load Testing y Benchmarking HTTP • Permite probar aplicaciones bajo carga simulada • Número de usuarios simulados configurable • Incluido en algunas distro Linux – http://www.joedog.org/pub/siege/
  • 14. Siege
  • 15. Siege • Parte de los resultados que nos entrega son: – Transacciones totales – Tiempo total del test – Tiempo promedio de respuesta para cada usuario – Concurrencia – Transacciones exitosas
  • 16. Siege
  • 17. Perfilado • Recolección de información sobre la aplicación durante su ejecución para un análisis. • Identifica cuellos de botella • Determinar en que punto de la ejecución: – Se uso más memoria – Tomó más tiempo en ejecutar
  • 18. Zend Debugger • Extensión PHP • Freeware instalable a stack PHP prexistente • Controla la ejecución y obtiene información • Informes detallados de el desempeño de la ejecución • Perfilado bajo demanda – Local – Remoto
  • 19. Zend Debugger • Cliente (IDE) hace una petición al Servidor 1. Zend Debugger se activa y controla la ejecución 2. Captura la información detallada de la misma 3. Regresa los resultados al cliente • Gráfica • Estadísticas de ejecución • Flujo de ejecución • Cobertura de código
  • 21. Xdebug • Extensión PHP • Open Source – PECL • Registra lo ocurrido en la ejecución y genera esos registros para su análisis • Perfilado encendido o apagado
  • 22. Xdebug • Se activa el perfilador de Xdebug 1. xdebug.profiler_enable a 1 • xdebug.profiler_enable_trigger 2. xdebug.profiler_output_dir 3. Captura información de la ejecución 4. Guarda resultados • Gráfica ( KcheGrind, WinGrind, WebGrind ) • Estadísticas de ejecución • Flujo de ejecución • Cobertura de código
  • 24. Xhprof • Extensión PHP • Facebook (PECL) • Más ligero que Xdebug – Compatible con KcheGrind y similares • Modificar cada archivo PHP – xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY); – $xhprof_data = xhprof_disable();
  • 25. Optimización prematura • Optimizar el código antes de saber donde están los cuellos de botella. • Hacer cambios para intentar que la aplicación “sea más rápida” – Estos cambios resultan costosos en tiempo – “Tunear” el web server o sistema operativo sin “tunear” primero la aplicación – Simplemente escalar la plataforma con más recursos
  • 27. Gracias @igormx @eltallerweb http://eltallerweb.com