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

Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Marketing BRANDING
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDAVIDROBERTOGALLEGOS
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar24roberto21
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024u20211198540
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdfsharitcalderon04
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadEduardoSantiagoSegov
 

Kürzlich hochgeladen (20)

Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
Agencia Marketing Branding Google Workspace Deployment Services Credential Fe...
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptx
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdf
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedad
 

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