Check-list de Rendimiento y Escalabilidad Drupal.

Anuncio
SB IT Media, S.L.
Check-list de
Rendimiento y
Escalabilidad
Drupal.
Derivada de la “Drupal Performance and Scalability Checklist” de la
Drupal Performance Agency con licencia Creative Commons
Attribution-ShareAlike2.0
Pedro González Serrano
01/04/2011
Motivación
Este documento, en forma de lista de comprobación, pretende ayudar a definir una estrategia
efectiva para mejorar el rendimiento y planificar la escalabilidad de sus sitios impulsados por
Drupal.
Este documento está basado en “Drupal Performance and Scalability Checklist” de la “Drupal
Performance Agency” (http://tag1consulting.com/Drupal_Performance_Agency), publicado
con licencia Creative Commons Attribution-ShareAlike2.0.
Maque las casillas que procedan, tache lo que no proceda, rellene los huecos si es aplicable e
incluya cualquier información que estime oportuna.
Objetivos de negocio
Determine qué objetivos de negocio están motivando estos ajustes de rendimiento.





Tasa de crecimiento.
 Impresiones de anuncios.
Medidas de la unidad de negocio: ___________________________________________
_______________________________________________________________________
_______________________________________________________________________
_______________________________________________________________________
Metas cuantitativas
Determine qué metas cuantitativas están motivando estos ajustes de rendimiento.
 Vistas de página mensuales: _______________________________________________
 Tiempos de carga:
Anónimos: ______________________
Registrados: _____________________
 Tiempos de generación (tiempo que emplea el servidor en generar el HTML):
Anónimos: ______________________
Registrados: _____________________
 Pico semanal (o máximo puntual):
Anónimos: ______________________
Registrados: _____________________
 Nº de usuarios mensuales:
Anónimos: ______________________
Registrados: _____________________
 Nº de susciptores: _____________
 Tiempo de carga portada: __________
 Nº de feeds: _____________________
 Tiempo de carga pág. más lenta: _____
 Tiempo de carga primera visita: ______
 Tiempo de envío de contenido: ______
 _______________________________________________________________________
 _______________________________________________________________________
 _______________________________________________________________________
Gestión de riesgos
Determine qué objetivos de gestión de riesgo están motivando estos ajustes de rendimiento.
 Alta disponibilidad







Ventana aceptable de pérdida de datos: _____________________________________
Tiempo aceptable fuera de servicio: _________________________________________
Ventana de recuperación de datos: __________________________________________
Recuperación de fallo catastrófico: __________________________________________
_______________________________________________________________________
_______________________________________________________________________
_______________________________________________________________________
Otros objetivos
Determine cualquieras otras metas que estén motivando estos ajustes de rendimiento.








Medir de forma precisa el rendimiento del sitio.
Encontrar y documentar cuellos de botella de rendimiento.
Solucionar cuellos de botella de rendimiento.
Afrontar específicos problemas de rendimiento conocidos con anterioridad:
_______________________________________________________________________
_______________________________________________________________________
_______________________________________________________________________
Mejorar el rendimiento del “core” de Drupal, contribuyendo las mejoras de vuelta al
proyecto bajo GPL.
_______________________________________________________________________
_______________________________________________________________________
_______________________________________________________________________
Disponibilidad
Antes de hacer cualquier cambio en su infraestructura, es crítico que implemente y pruebe una
estrategia efectiva de backup.
 Almacenar todos los archivos de configuración en un sistema de control de versiones.
Detalles: _______________________________________________________________
 Copias de respaldo regulares. Realización cada ___________, manteniendo ___ copias.
 Almacenamiento de las copias en otra localización. Detalles: _____________________
 Replicación de base de datos. Detales: _______________________________________
 Replicación de archivos. Detalles: ___________________________________________
 ¿Cuántas horas de datos puede permitirse perder en el caso de un fallo catastrófico de
la base de datos?: _______________________________________________________
 RAID:
Hardware: _______________________
Software: _______________________
 DRDB. Detalles: _________________________________________________________
 Redundancia de red: _____________________________________________________
 Backups validados por última vez: ___________________________________________
 _______________________________________________________________________
 _______________________________________________________________________
 _______________________________________________________________________
Procesos
Esta sección está destinada a entender los procesos que emplea para gestionar su sitio.
 Servidor(es) de desarrollo: _________________________________________________
 Servidor(es) de integración (staging): ________________________________________
 Proceso formal de despliegue (deployment) de nuevo código: ____________________
_______________________________________________________________________
 Lista(s) de correo internas: ________________________________________________
 Sistema de seguimiento de bugs: ___________________________________________
 Intranet del proyecto: ____________________________________________________
Monitorización
Es imprescindible asegurarse, antes de realizar ajustes de rendimiento, de que se dispone de
suficientes sistemas de monitorización emplazados con anterioridad.
 Se monitoriza localmente de forma activa la salud y el rendimiento de todos los
sistemas empleando las siguientes herramientas:
o Cacti
o MySQL Enterprise Monitor
o Splunk
o Drupal Accesslog
o Nagios
o _________________________
o Munin
o _________________________
o Monit o M/Monit
o ________________________
 Se monitoriza remotamente la salud y el rendimiento de las siguientes páginas críticas:
o Portada (anónimos / registrados)
o ________________________________________________________________
o ________________________________________________________________
o ________________________________________________________________
o ________________________________________________________________
o ________________________________________________________________
o ________________________________________________________________
 Se monitorizan las páginas con las siguientes herramientas:
o Gomez
o _________________________
o Keynote
o _________________________
o GTmetrix
o _________________________
 Se analizan regularmente los archivos de registro (logs), especifique las herramientas
usadas:
o Apache access_log: ________________________________________________
o Apache error_log: _________________________________________________
o Squid access_log: _________________________________________________
o MySQL slow_query_log: ____________________________________________
o PHP error_log: ____________________________________________________
 Se monitoriza remotamente el comportamiento del sitio con las siguientes
herramientas:
o Google Analytics
o ______________________
o Google Webmaster Tools
o ______________________
 _______________________________________________________________________
 _______________________________________________________________________
 _______________________________________________________________________
Red
Esta sección está diseñada para recabar los detalles completos sobre su infraestructura de red.












Recopile y adjunte un diagrama de red actualizado.
Velocidad de interconexión entre servidores: _________________________________
Dispositivos de interconexión entre servidores: hubs /switches / virtual adapters / VPN
Velocidad de conexión con el exterior (ISP) de sus servidores:
o Subida (hacia Internet): ______
o Bajada (desde Internet): _____
Redundancia: ___________________________________________________________
Gestiona sus propios DNS: _________________________________________________
Balanceador(es) de carga: _________________________________________________
Firewalls(s): ____________________________________________________________
Emplea CDN(s): _________________________________________________________
_______________________________________________________________________
_______________________________________________________________________
_______________________________________________________________________
Sistemas
En este paso se persigue obtener una comprensión de su infraestructura desde un punto de
vista por-servidor. Recopile y adjunte la información pedida para cada máquina (aunque se
trate de clones), indicando el nombre de acuerdo al diagrama de red elaborado previamente.
 Servidores Linux:
o Proposito(s): _____________________________________________________
o Distribución(es) y versión(es): _______________________________________
___________________________________________________________
o Recopile “vmstat 3 20”
o Recopile “mount”
o Recopile “top –c2”
o Recopile
“cat
o Recopile “ps auxww”
/proc/meminfo”
o Recopile “netstat -in”
o Recopile
“cat
o Recopile “df -h”
/proc/cpuinfo”
 Servidores BSD:
o Proposito(s): _____________________________________________________
o Distribición(es) y versión(es): ________________________________________
o Memoria /CPU: ___________________________________________________
 Servidores Windows:
o Proposito(s): _____________________________________________________
o Versión(es) y ServicePack(s): ________________________________________
o Memoria /CPU: ___________________________________________________
 Balanceador(es) de carga: _________________________________________________
 Firewall(s): _____________________________________________________________
 Si sus servidores están virtualizados, describa la plataforma y configuración: ________
_______________________________________________________________________
_______________________________________________________________________
_______________________________________________________________________
 Otros servidores:
o ________________________________________________________________
o ________________________________________________________________
o ________________________________________________________________
o ________________________________________________________________
o ________________________________________________________________
o ________________________________________________________________
Aplicaciones
Para finalizar pretendemos obtener una visión de su infraestructura por aplicación.Indique
claramente en qué máquina se encuentra funcionando cada aplicación y recopila la
información pedida para cada instancia (aunque se trate de clones).
Servidores web
 Apache, versión(es): ______________________________________________________
o Recopile apache2.conf, httpd.conf los archivos vhost aplicables y cualquier
archivo de configuración cargado mediante “include”.
o Recopile la salida de “apache2 -M” (procese “/etc/apache2/envvars”
previamente en caso de error)
o Recopile la salida de “apache2 -l” (procese “/etc/apache2/envvars”
previamente en caso de error)
 Lighttpd, versión(es): _____________________________________________________
o Recopile lighttpd.conf
o Recopile cualquier include aplicable (incluidos archivos .lua para url rewritting)
 Nginx, versión(es): _______________________________________________________
o Recopile nginx.conf, los archivos vhost aplicables y cualquier archivo de
configuración cargado mediante “include”.
o Recopile proxy.conf y fastcgi.conf.
 IIS, versión(es): __________________________________________________________
o Recopile la configuración completa del servidor.
 Otros. Cual(es), versión(es): ________________________________________________
o Recopile la configuración completa del servidor.
Procesadores PHP
 Utilizando PHP, versión(es): ________________________________________________
 Tipo de puente (comunicación) con el servidor web:
o CGI
o FPM (FastCGI Process
o Fast-CGI
Manager)
o mod_fcgid
o Otro: _________________
o mod_php
 Recopile la salida de phpinfo()
 Recopile los archivos php.ini aplicables (y los archivos de configuración cargados
mediante include)
 Utilizando opcode cachés. Nombre(s) _______________ Versión(es) _______________
 Recopile la salida de apc.php o el archivo equivalente en su opcode caché.
Servidores de aplicaciones Java
 Utilizando Tomcat, Jetty, Otro: ___________. versión(es): _______________________
o Recopile los archivos de configuración
 Sirviendo las siguientes aplicaciones:
o Solr, versión(es): __________________________________________________
 Recopile los archivos de configuración
o Lucene, versión(es): _______________________________________________
 Recopile los archivos de configuración
o Otras. Nombre(s) _______________________, versión(es) ________________
 Recopile los archivos de configuración
Proxy-cachés
 Utilizando Squid, versión(es): ______________________________________________
o Recopile squid.conf
o Recopile los detalles de implementación
 Utilizando Varnish, versión(es): _____________________________________________
o Recopile default.vcl (o cualquier vcl aplicable)
o Recopile varnish (archivo de configuración del daemon)
Bases de datos
 Utilizando MySQL, PerconaDB, MariaDB. Versión(es): ___________________________
o Recopile my.cnf (o equivalente) junto con cualquier archivo de configuración
cargado por include.
o Recopile “SHOW STATUS” desde un usuario con privilegios
o Recopile “SHOW VARIABLES” desde un usuario con privilegios
o Recopile “mysqlreport” desde el/los sistema(s)
o Recopile “mysqlsla” desde el slow query log
 Utilizando PostgreSQL, SQLlite, Oracle, MS-SQL Server. Versión(es): _______________
o Recopile cualquier configuración relevante
 Utilizando Cassandra, MongoDB. Versión(es): _________________________________
o Detalles: ________________________________________________________
o Recopile cualquier configuración relevante
Servidores de archivos
 Utilizando NFS. Versión(es): ________________________________________________
o Modo: kernel / usuario (táchese lo que no proceda)
o Recopile “/etc/exports”
o Recopile “/proc/net/rpc/nfsd”
 Utilizando Gluster. Versión(es): _____________________________________________
o Recopile los archivos de configuración y realice un diagrama de conexión de
“bricks”.
Servidores clave/valor
 Utilizando Memcached. Versión(es): _________________________________________
o Detalles: ________________________________________________________
o Tipo de conector php: PECL memcache / PECL memcached / otro: __________
o Tipo de conector Drupal: Memcached / CacheRouter / otro: _______________
 Utilizando Redis. Versión(es): ______________________________________________
o Detalles: ________________________________________________________
o Tipo de conector Drupal: ___________________________________________
Drupal
 Utilizando Drupal / Pressflow. Versión(es): ____________________________________
o Recopile una lista de todos los módulos del core habilitados
o Recopile una lista de todos los parches aplicados al core
o Recopile una lista de todos los módulos “contrib” habilitados, versión y
parches aplicados.
o Recopile una lista de todos los módulos “custom”, junto con su código.
o ¿Activada la caché de páginas? Ajustes: _______________________________
o ¿Activado Boost? Ajustes: __________________________________________
o Cualquier detalle relevante: _________________________________________
________________________________________________________________
________________________________________________________________
________________________________________________________________
________________________________________________________________
Miscelánea
 Otras aplicaciones no contempladas y sus detalles:
o ________________________________________________________________
o ________________________________________________________________
o ________________________________________________________________
o ________________________________________________________________
o ________________________________________________________________
o ________________________________________________________________
Descargar