Entonamiento y perfilado      de Drupal         Rodolfo Campos           @camposer      Madrid, Octubre de 2011
AgendaQué es Drupal●Módulos del CMS●    ●   Boost    ●   Memcache    ●   ProfilingDepuración y perfilado●    ●   Xdebug   ...
Entonamiento y perfilado      de Drupal         Qué es
Drupal Drupal es un Sistema Manejador de Contenidos (CMS) que permite crear y mantener diferentes tipos de sitios web sin ...
Drupal
Entonamiento y perfilado      de Drupal        Módulos
Boost●Es un módulo que ofrece cacheo de páginas estáticas para sitios deDrupal. Para instalaciones en servidores compartid...
Boost (cont...) ●   Panel de control para realizar ajustes (finos) del módulo ●   Archivos htaccess incluidos. ●   Generad...
Boost (refs) ●   Principal: http://drupal.org/project/boost ●   Conceptos: http://drupal.org/node/545664 ●   Instalación: ...
Memcache●   Permite integrar Drupal con Memcached.●Memcached es un sistema distribuido, libre y de alta disponibilidad dec...
Memcache (refs)Principal: http://drupal.org/project/memcache●Conceptos: http://memcached.org/●Instalación:●    ●   http://...
Profiling●Permite medir y observar los tiempos, memoria y llamadas pararecursos del Drupal. Aunque fue concebido de una fo...
Profiling (refs)Principal: http://drupal.org/project/profiling●
Entonamiento y perfilado      de Drupal   Depuración y perfilado
Xdebug●Es una extensión de PHP que ofrece depuración y capacidades deperfilado.La información que provee Xdebug:●    ●   T...
Xdebug (refs)Principal: http://xdebug.org/●Documentación: http://xdebug.org/docs/●●Configuración Xdebug en remoto con Ecli...
JMeter●Apache JMeter es una aplicación de escritorio abierta y hecha enJava, que permite probar comportamientos funcionale...
Jmeter (refs)Principal: http://jakarta.apache.org/jmeter/●●Documentación:http://jakarta.apache.org/jmeter/usermanual/index...
Entonamiento y perfilado      de Drupal Mejoras y actualizaciones, parcheo y distribuciones
Mejoras y actualizaciones●   En Drupal existen dos tipos de versiones:     ●   Versiones menores. Identificadas por los nú...
Mejoras y actualizaciones (refs)Acerca de mejoras en Drupal: http://drupal.org/upgrade●Mejora de Drupal 6 a 7: http://drup...
Parches●Un parche es una pieza de código diseñada para resolver unproblema, actualizar un programa o data. Esto incluye vu...
Parches (refs)Mejora de Drupal utilizando parches: http://drupal.org/node/359234●Cómo instalar un parche: http://drupal.or...
Distribuciones●Las distribuciones son variaciones (sabores) de Drupal que incluyenun conjunto de módulos preinstalados y m...
Entonamiento y perfilado      de Drupal    Aceleradores Web
Pagespeed (mod_pagespeed)●Pagespeed puede ser utilizado por desarrolladores como extensióndel navegador (firefox o chrome)...
Pagespeed (refs)Principal: http://code.google.com/intl/es-MX/speed/page-speed/●●Detalle de filtros:http://code.google.com/...
Varnish●Varnish es un acelerador HTTP diseñado para sitios dinámicos conaltas cargas de trabajo.Varnish almacena data en s...
Varnish (características)Soporte de plugins (VMOD)●Soporte ESI (Edge Side Includes)●Soporte Gzip●              * Gzip Comp...
Varnish (refs)Principal: https://www.varnish-cache.org/●●Manual de referencia de Varnish:https://www.varnish-cache.org/doc...
Entonamiento y perfilado      de Drupal     Bases de Datos y  Optimizadores de código
MySQL - Fragmentación●Si se producen inserciones o eliminaciones aleatorias en los índicesde una tabla, los índices pueden...
MySQL – Slow Queries●Cuando se inicia con la opción --log-slow-queries[=file_name], mysqldescribe un archivo de registro q...
MySQL (refs)●   Manual de Referencia MySQL 5.0: http://dev.mysql.com/doc/refman/5.0/es/●Activar MySQL Query Log Slow Queri...
MySQL (refs)●Manual de Referencia MySQL 5.0:http://dev.mysql.com/doc/refman/5.0/es/●Activar MySQL Query Log Slow Queries:h...
APC● El APC, o caché alternativo de PHP (por sus siglas en inglés deAlternative PHP Cache), es un código de operación de c...
APC (refs)Manual: http://php.net/manual/es/book.apc.php●●Instalación de APC en CentOS 5:http://2bits.com/articles/installi...
Upcoming SlideShare
Loading in …5
×

Entonamiento y perfilado de Drupal

1,488 views

Published on

Entonamiento y perfilado
de Drupal

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,488
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
11
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Entonamiento y perfilado de Drupal

  1. 1. Entonamiento y perfilado de Drupal Rodolfo Campos @camposer Madrid, Octubre de 2011
  2. 2. AgendaQué es Drupal●Módulos del CMS● ● Boost ● Memcache ● ProfilingDepuración y perfilado● ● Xdebug ● JMeterMejoras y actualizaciones, parcheo y distribuciones●Aceleradores Web● ● Pagespeed ● VarnishBases de Datos y Optimizadores de código●
  3. 3. Entonamiento y perfilado de Drupal Qué es
  4. 4. Drupal Drupal es un Sistema Manejador de Contenidos (CMS) que permite crear y mantener diferentes tipos de sitios web sin la necesidad de dominar lenguajes de programación
  5. 5. Drupal
  6. 6. Entonamiento y perfilado de Drupal Módulos
  7. 7. Boost●Es un módulo que ofrece cacheo de páginas estáticas para sitios deDrupal. Para instalaciones en servidores compartidos es la opciónideal.Características principales:● ● Mejora el rendimiento de sitios web para usuarios anónimos. ● Cacheo de página sobre demanda (on-demand) ● Soporte para hostings compartidos ● Soporte para instalaciones multi-site ● Soporte para instalaciones en subdirectorios ● Soportado y diseñado para Apache ● Soporte de algunas funcionalidades sobre Nginix y Lighthttpd ● Soporte para compresión de páginas con Gzip ● Cacheo de HTML, XML, CSS, JavaScript, JSON/AJAX.
  8. 8. Boost (cont...) ● Panel de control para realizar ajustes (finos) del módulo ● Archivos htaccess incluidos. ● Generador de archivos htaccess ● Ajuste de tiempos de caché para diferentes partes del sitio web ● Utiliza CRON para actividades de limpieza de archivos de caché ● Generador de caché automático ● Estadísticas y control de liberación (flush) de caché ● Fácil de instalar y configurar
  9. 9. Boost (refs) ● Principal: http://drupal.org/project/boost ● Conceptos: http://drupal.org/node/545664 ● Instalación: http://drupal.org/node/545908
  10. 10. Memcache● Permite integrar Drupal con Memcached.●Memcached es un sistema distribuido, libre y de alta disponibilidad decacheo de objetos.● Características principales: ● Una API para utilizar Drupal con Memcached a través de las librerías Memcache de PECL o Memcached ● Soporte de Memcache para: ● Cacheo ● Sesiones ● Bloqueos (Locking) ● Un módulo sencillo que provee información acerca de la interacción entre Dupal y Memcached ● Un conjunto de módulos de prueba para probar la configuración del Memcache.
  11. 11. Memcache (refs)Principal: http://drupal.org/project/memcache●Conceptos: http://memcached.org/●Instalación:● ● http://trentrichardson.com/2010/02/08/installing-memcached-on-ubuntu-for- ● http://drupal.org/node/1131468
  12. 12. Profiling●Permite medir y observar los tiempos, memoria y llamadas pararecursos del Drupal. Aunque fue concebido de una forma no-intrusiva,se recomienda su desactivación en entornos de producción.Características principales:● ● Provee un conjunto de tablas, gráficos y diagramas para análisis de mediciones y búsqueda de cuellos de botella. ● Realiza mediciones únicamente sobre elementos especificados.
  13. 13. Profiling (refs)Principal: http://drupal.org/project/profiling●
  14. 14. Entonamiento y perfilado de Drupal Depuración y perfilado
  15. 15. Xdebug●Es una extensión de PHP que ofrece depuración y capacidades deperfilado.La información que provee Xdebug:● ● Trazas de pila y funciones con parámetros y nombres de funciones, archivos e indicadores de líneas ● Disposición de memoria ● Búcles infinitosAdemás ofrece:● ● Información de cobertura de código ● Depuración de scripts desde sistemas externos, por ejemplo: Eclipse.
  16. 16. Xdebug (refs)Principal: http://xdebug.org/●Documentación: http://xdebug.org/docs/●●Configuración Xdebug en remoto con Eclipse:http://techmania.wordpress.com/2008/07/02/debugging-php-in-eclipse-using-x
  17. 17. JMeter●Apache JMeter es una aplicación de escritorio abierta y hecha enJava, que permite probar comportamientos funcionales y medirrendimiento.●Es utilizado para medir el rendimiento de recursos estáticos ydinámicos (archivos, Servlets, scripts de Perl, Objetos Java, Bases deDatos y queries, Servidores de Bases de Datos, etc).Puede ser utilizada para simular cargas pesadas (Pruebas de Stress).●Ofrece reportes y resúmenes de rendimiento y ejecución.●
  18. 18. Jmeter (refs)Principal: http://jakarta.apache.org/jmeter/●●Documentación:http://jakarta.apache.org/jmeter/usermanual/index.html
  19. 19. Entonamiento y perfilado de Drupal Mejoras y actualizaciones, parcheo y distribuciones
  20. 20. Mejoras y actualizaciones● En Drupal existen dos tipos de versiones: ● Versiones menores. Identificadas por los números menos significativos, por ejemplo: 6.22 ó 7.2. Actualizar directamente de un número pequeño a cualquier otro mayor. ● Versiones mayores. Identificadas por los números más significativos, por ejemplo: 6.22 ó 7.2. Actualizar de forma escalonada, primero actualización menor y luego a mayor.●Es importante siempre tener activo el Gestor de Actualizaciones enproducción (ver: http://drupal.org/documentation/modules/update)Las mejoras (upgrade) son introducidas cuando se mueve una instalación de●Drupal a versiones mayores, por ejemplo: upgrading 6.22 a 7.2●Las actualizaciones (update) son introducidas cuando se mueve unainstalación de Drupal entre versiones menores, por ejemplo: updating 6.1 a6.22●Las actualizaciones se realizan directamente a través del Admin del Drupal omanualmente. Las mejoras pueden realizarse manualmente o utilizandoupgrade.php, ver: UPGRADE.txt
  21. 21. Mejoras y actualizaciones (refs)Acerca de mejoras en Drupal: http://drupal.org/upgrade●Mejora de Drupal 6 a 7: http://drupal.org/documentation/upgrade/6/7●●Respaldo de una instalación Drupal:http://drupal.org/upgrade/copying-your-live-site-via-command-line
  22. 22. Parches●Un parche es una pieza de código diseñada para resolver unproblema, actualizar un programa o data. Esto incluye vulnerabilidadesde seguridad, errores (bugs), usabilidad y rendimiento.●Los parches son generados utilizando el programa diff. Por ejemplo: diff -Naur drupal-current drupal-latest > drupal-current-to-drupal-latest.patch●En instalaciones de Drupal sobre Linux los parches son aplicados conel programa patch. Por ejemplo:[DRUPAL_HOME]$ patch -p1 --dry-run < drupal-current-to-drupal-latest.patch
  23. 23. Parches (refs)Mejora de Drupal utilizando parches: http://drupal.org/node/359234●Cómo instalar un parche: http://drupal.org/node/14231●
  24. 24. Distribuciones●Las distribuciones son variaciones (sabores) de Drupal que incluyenun conjunto de módulos preinstalados y modificaciones yconfiguraciones especiales sobre éstos.●Existen muchas distribuciones para satisfacer diferentes problemas.Puede conseguir una lista extensa de distribuciones en:http://drupaldistrowatch.com/●La distro Pressflow es utilizada ampliamente porque mantiene losmódulos por omisión de Drupal y los extiende con otros módulos yconfiguraciones, con énfasis en: rendimiento, escalabilidad,disponibilidad y pruebas.●La mayoría de mejoras introducidas en Pressflow sobre Drupal 6 hansido portadas a Drupal 7.Puede conseguir Pressflow en: http://pressflow.org/●
  25. 25. Entonamiento y perfilado de Drupal Aceleradores Web
  26. 26. Pagespeed (mod_pagespeed)●Pagespeed puede ser utilizado por desarrolladores como extensióndel navegador (firefox o chrome) para analizar problemas derendimiento.●Pagespeed puede ser utilizado como un módulo de Apache(mod_pagespeed) para automáticamente optimizar páginas Web y susrecursos mientras son servidas.
  27. 27. Pagespeed (refs)Principal: http://code.google.com/intl/es-MX/speed/page-speed/●●Detalle de filtros:http://code.google.com/intl/es-MX/speed/page-speed/docs/config_filters.html
  28. 28. Varnish●Varnish es un acelerador HTTP diseñado para sitios dinámicos conaltas cargas de trabajo.Varnish almacena data en su memoria virtual y delega en el Sistema●Operativo la decisión de qué pasar a RAM y qué a disco.●Varnish maneja hilos de ejecución por petición. Cuando el límite(configurado) es alcanzado, las peticiones son almacenadas en unbuffer de sobrecarga (overflow buffer); sólo cuando este último essobrecargado se deniegan las conexiones.●Las configuraciones son realizadas utilizando el Lenguaje deConfiguraciones de Varnish (VCL). Al iniciar el acelerador, estasconfiguraciones son traducidas a código C, compiladas y enlazadascon el acelerador.Posee una interfaz de línea de comandos.●
  29. 29. Varnish (características)Soporte de plugins (VMOD)●Soporte ESI (Edge Side Includes)●Soporte Gzip● * Gzip Compression and UncompressionSoporte de directores por DNS, Random, Hashing y direcciones IP●Soporte de modos Santo (Saint) y de Gracia (Grace)●
  30. 30. Varnish (refs)Principal: https://www.varnish-cache.org/●●Manual de referencia de Varnish:https://www.varnish-cache.org/docs/3.0/reference/index.html●Ejemplo de archivo VCL para un sitio sobre Drupal o Pressflow:http://highervisibilitywebsites.com/example-varnish-vcl-drupal-pressflow-site●Configuración de Varnish para Pressflow:https://wiki.fourkitchens.com/display/PF/Configure+Varnish+for+Pressflow
  31. 31. Entonamiento y perfilado de Drupal Bases de Datos y Optimizadores de código
  32. 32. MySQL - Fragmentación●Si se producen inserciones o eliminaciones aleatorias en los índicesde una tabla, los índices pueden resultar fragmentados. Esto significaque el orden físico de las páginas de índice en el disco no guardarelación con el orden de los registros en las páginas, o que haymuchas páginas en blanco en los bloques de 64 páginas que seasignan al índice.●Un síntoma de la fragmentación es que una tabla ocupa más espaciodel que debería ocupar. Es difícil determinarlo con exactitud, ya quetodos los datos e índices en InnoDB se almacenan en estructuras B-tree, cuya porporción de espacio ocupado (fillfactor) puede variar entreel 50% y el 100%.
  33. 33. MySQL – Slow Queries●Cuando se inicia con la opción --log-slow-queries[=file_name], mysqldescribe un archivo de registro que contiene todos las sentencias SQLque llevaron más de long_query_time segundos para ejecutarsecompletamente. El tiempo para adquirir los bloqueos de tabla inicialesno se cuenta como tiempo de ejecución.●Una sentencia se registra en el registro de consultas lentas despuésde que haya sido ejecutada y todos los bloqueos liberados. El ordende registro puede diferir del de ejecución.
  34. 34. MySQL (refs)● Manual de Referencia MySQL 5.0: http://dev.mysql.com/doc/refman/5.0/es/●Activar MySQL Query Log Slow Queries:http://blogofsysadmins.com/activar-mysql-log-slow-queries●Aprendiendo de fragmentación en MySQL:http://www.mysqlperformanceblog.com/2008/05/01/learning-about-mysql-table-fragme●Cómo determinar si una tabla está fragmentada:http://palominodb.com/blog/2010/10/25/how-i-find-mysql-fragmentation●Fragmentación en InnoDB (consíguela y arréglala):http://www.bluegecko.net/mysql/innodb-tablespace-fragmentation-find-it-and-fix-it/●Parche para soportar Maestro-Esclavo sobre Drupal 6:http://www.cestfait.ch/content/drupal-6-patch-masterslave●Configuración Base de Datos Maestro-Esclavo Pressflow:https://wiki.fourkitchens.com/display/PF/Using+database+replication+with+Pressflow+●Configuración Base de Datos (incluye maestro-esclavo) en Drupal 7:http://drupal.org/node/310071
  35. 35. MySQL (refs)●Manual de Referencia MySQL 5.0:http://dev.mysql.com/doc/refman/5.0/es/●Activar MySQL Query Log Slow Queries:http://blogofsysadmins.com/activar-mysql-log-slow-queries●Aprendiendo de fragmentación en MySQL:http://www.mysqlperformanceblog.com/2008/05/01/learning-about-mysql-table●Cómo determinar si una tabla está fragmentada:http://palominodb.com/blog/2010/10/25/how-i-find-mysql-fragmentation●Fragmentación en InnoDB (consíguela y arréglala):http://www.bluegecko.net/mysql/innodb-tablespace-fragmentation-find-it-and-fi●Parche para soportar Maestro-Esclavo sobre Drupal 6:http://www.cestfait.ch/content/drupal-6-patch-masterslave●Configuración Base de Datos (incluye maestro-esclavo) en Drupal 7:http://drupal.org/node/310071
  36. 36. APC● El APC, o caché alternativo de PHP (por sus siglas en inglés deAlternative PHP Cache), es un código de operación de caché libre yabierto para PHP. Su objetivo es el de proporcionar un marco robusto,libre y abierto para optimizar código de PHP intermedio mediante elalmacenamiento en caché● Es importante configurar (copiar en algún lugar dentro delDocumentRoot del Apache) el archivo apc.php provisto con laherramienta. Ofrece una interfaz Web con información acerca del usode la caché, algunas funciones de gestión y gráficos en caso de que lalibrería GD se encuentre activada.
  37. 37. APC (refs)Manual: http://php.net/manual/es/book.apc.php●●Instalación de APC en CentOS 5:http://2bits.com/articles/installing-php-apc-gnulinux-centos-5.html●Benchmark de Drupal utilizando optimizadores de código (APC,eAccelerator y XCached)

×