• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Taller de optimizacion de servidores web tipo LAMP
 

Taller de optimizacion de servidores web tipo LAMP

on

  • 1,517 views

Estas diapositivas son las bases de un taller de optimización de servidores web impartido por BeezNest

Estas diapositivas son las bases de un taller de optimización de servidores web impartido por BeezNest

Statistics

Views

Total Views
1,517
Views on SlideShare
1,517
Embed Views
0

Actions

Likes
1
Downloads
12
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

CC Attribution-NoDerivs LicenseCC Attribution-NoDerivs License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Estas diapositivas sirven de base para el taller de introducción a la optimización de sevidores web realizado por BeezNest.
  • Nuestro plan de acción será, en base a la aplicación Chamilo (PHP, MySQL, Apache), de revisar la pila de software usada, herramientas de análisis de carga, de alertas, y de optimización simple.
  • Para instalar la capa de software necesaria (tomando como referencia Ubuntu), unos comandos cortos serán suficientes. Los paquetes elegidos indicarán sus propios requerimientos Apache sirve como servidor web (entrega las páginas HTML) MySQL se usa como servidor de bases de datos (se almacenan los datos necesarios para la aplicación) PHP traduce el código PHP, con la ayuda de datos que recupera en la base de datos, en una página HTML entregada por el servidor web (Apache) al usuario
  • Chamilo se puede instalar en unos pasos simples. La elaboración del VirtualHost es un ejercicio parte del taller, que representa una serie de ventajas a nivel de personalización y optimización de un sitio en particular (más todavía si el servidor en el cual se aloja ofrece varios sitios).
  • Firebug es una herramienta (plugin) de Firefox que permite analizar de forma precisa las razones de lentitud de un sitio web desde el punto de vista del navegador del usuario : peso de las imágenes, tiempo para contactar el servidor, imágenes que generan errores, etc. Principalmente a través de su pestaña « Red » Yslow es una herramienta (también plugin de Firefox, aunque tiene su versión online) que analiza en más detalles la adecuación con unas recomendaciones generales a nivel de optimización de sitios web.
  • Apache Benchmark es un aplicativo chiquito proveido por el paquete apache2-utils bajo Ubuntu. Se lanza en línea de comando con unos parámetros simples que permitirán « simular » una carga de usuarios en su sitio. El parámetro « -c » indica la cantidad de pedidas simultáneas (« c » para « concurente ») El parámetro « -n » (« número ») indica la cantidad de pedidas que hacer al sitio. Ojo que este sistema solo descarga la página principal (HTML) y no los recursos vinculados (imágenes, JS, CSS), lo que tiene que ser tomado en cuenta al momento de realizar pruebas, ya que no representa exactamente la situación como usuario.
  • Xhprof es algo complicado de instalar (ver referencia) pero permite analizar con precisión los pasos más lentos de la generación (PHP) de una página, y obviamente dedicar tiempo a los pasos que más importan. http://techportal.inviqa.com/2009/12/01/profiling-with-xhprof/
  • APC optimiza la carga de páginas PHP por guardar en memoria versiones pre-compiladas de los scripts usados. Su instalación y activación es generalmente suficiente para lograr buenos resultados, aunque puede ser causa de comportamientos extraños que generarán frustración de parte de los usuarios.
  • Memcache es un « servidor de caché distribuido», es decir que actua como una base de datos (para menores cantidades de información) exclusivamente almacenado en memoria, y posiblemente distribuido entre varios servidores. Esto permite alcanzar mayores celeridades para, por ejemplo, el almacenamiento de datos de sesiones de usuarios.
  • Munin tiene que ser configurado con paciencia y a través de varias « rondas » de afinamiento, ya que requiere de un cliente que colecta, y de un servidor que muestra la información colectada. Ambos servidores pueden estar en la misma máquina. Los gráficos permiten tener un registro « histórico » de los momentos de mayor carga, mayor uso de memoria o latencia en el disco (y mucho más). Es relativamente fácil diseñar sus propios módulos Munin para aplicaciones específicas. Ver http://munin-monitoring.org/wiki/HowToWritePlugins
  • Expires es un módulo poco conocido de Apache, que permite definir tiempos de expiración para cada recurso en un servidor, por ejemplo, definir que los iconos de su sitio web pueden permanecer un mes en caché del navegador del cliente (a menos que este limpie su caché). Esto tiene usualmente un efecto tremendo en reducción de ancho de banda y de llamadas al servidor, ya que, al conocer el periodo de vigencia de algun recurso, el navegador ya ni llama al servidor para verificarlo. Simplemente asume, localmente, que este recurso no ha cambiado. El efecto para el usuario también es impresionante, ya que las páginas en su sitio cargarán mucho menos recursos, y por lo tanto necesitarán mucho menos descargas.
  • Monit es una herramienta de monitoreo y alertas sobre servicios o estados de un servidor. Permite, por ejemplo, decir que si la carga del sistema pasa por encima de 80 % por más de 2 minutos, se envie un correo electrónico (o un SMS) al administrador del servidor. Esto permite adelantarse y estar al tanto de problemas « por surgir » a nivel del servidor, lo que permite mejorar la relación con el cliente y hacer vigilancia « preventiva y pro-activa »
  • Varnish puede ser su mejor amigo en términos de optimización de servidores web. Permite hacer micro-caché, caché y balanceo de carga.
  • BeezNest imparte talleres de optimización de servidores web y consultoría en toda América Latina (ya en México, Perú y Venezuela) y su trabajo ha permitido lograr hasta 60 % de aumento de tráfico y 800 % de reducción de carga, según los casos más exitosos. Para más información, escribir a info@beeznest.com

Taller de optimizacion de servidores web tipo LAMP Taller de optimizacion de servidores web tipo LAMP Presentation Transcript

  • Octubre 2012, Puebla, MéxicoOptimización de servidores web de software libre Yannick Warnier
  • Plan de acción● LAMP● Chamilo● Firebug● Apache Benchmark● XHProf● APC y MemCache● Munin● Expires● Monit
  • Instalación LAMP● En Windows ● Descargar EasyPHP o WAMP o XAMPP ● Instalar● En GNU/Linux Debian o Ubuntu sudo apt-get install ●libapache2-mod-php5 php5-mysql mysql-serverNota : PHP 5.4 más eficiente
  • Instalación de Chamilo LMS● http://code.google.com/p/chamilo > Download● Descomprimir en /var/www● Crear un VirtualHost de Apache● Registrar nombre en /etc/hosts● Crear cuenta MySQL● Cargar página de instalación● Seguir procedimiento paso a paso
  • Primera medición con Firebug y YSlow● Firebug, extensión de Firefox ● Usar pestaña « red » para tiempo de carga● Yslow, extensión de Firefox ● Lanzar sobre sitio. Ignorar falta de CDNs
  • Apache Benchmark● La clásica : ab -c 10 -n 100 http://misitio.com/● Para simular una conexión : usar -C o -H ● -C indica un cookie ● -H indica un header
  • XHProf● Librería de análisis publicada por Facebook● Permite medir ● uso de ciclos de procesador ● uso de memoria
  • APC● APC (Another PHP Cache) es un módulo de PHP que permite pre-interpretar scripts PHP● Instalación : ● apt-get install php5-dev ● pear install apc● Configuración : activar y asignar espacio en memoria
  • Memcache● Almacenamiento de variables● Servidor distribuido ● No hay redundancia
  • Munin● Munin permite seguir cambios en el tiempo
  • Expires● Las imágenes cambian poco● Los usuarios regresan mucho al mismo sitio● Si los usuarios guardan esta info en caché ● Ya no se necesita cargarla cada vez ● Se reduce (mucho) el tráfico (16GB->2GB) <Directory /var/www/vhost/subdomains/nuevo/httpdocs/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all ExpiresByType image/gif "access plus 1 day" ExpiresByType image/jpg "access plus 1 day" ExpiresByType image/png "access plus 1 day" </Directory>
  • Monit● Que pasa cuando un servicio se cae o entra en sobrecarga ?● Monit permite configurar límites y ● Enviar correos ● Reiniciar servicios
  • Varnish● Si muchos usuarios piden la misma página● En un tiempo corto● Se puede almazenar la página en un● servicio de reverse-caché
  • ContactoIng. Yannick WarnierDirector de tecnologías - BeezNestPresidente - Asociación ChamiloInfo@beeznest.com                 @ywarnier