SlideShare una empresa de Scribd logo
1 de 14
Octubre 2012, Puebla, México




Optimizació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-server

Nota : 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é
Contacto
Ing. Yannick Warnier
Director de tecnologías - BeezNest
Presidente - Asociación Chamilo

Info@beeznest.com
         
        @ywarnier

Más contenido relacionado

La actualidad más candente

Websockets & Web Messaging
Websockets & Web MessagingWebsockets & Web Messaging
Websockets & Web MessagingDẳvĭks Mks
 
Presentación internet kata
Presentación internet kataPresentación internet kata
Presentación internet katakatika921009
 
Blazor, un nuevo framework .NET
Blazor, un nuevo framework .NETBlazor, un nuevo framework .NET
Blazor, un nuevo framework .NETJonathan González
 
Presentacio Lasalle
Presentacio LasallePresentacio Lasalle
Presentacio LasalleJoan Queralt
 
Un sitio superrápido con joomla!
Un sitio superrápido con joomla!Un sitio superrápido con joomla!
Un sitio superrápido con joomla!Carlos M. Cámara
 
Dn12 u3 a10_rcla.
Dn12 u3 a10_rcla.Dn12 u3 a10_rcla.
Dn12 u3 a10_rcla.angel_rock
 
Introducción a herramientas de Roots (José Debuchy, WCBA 2017)
 Introducción a herramientas de Roots (José Debuchy, WCBA 2017) Introducción a herramientas de Roots (José Debuchy, WCBA 2017)
Introducción a herramientas de Roots (José Debuchy, WCBA 2017)wpargentina
 
Novedades en Arquitectura Front End // Meetup UX UI @UTN Mendoza
Novedades en Arquitectura Front End // Meetup UX UI @UTN MendozaNovedades en Arquitectura Front End // Meetup UX UI @UTN Mendoza
Novedades en Arquitectura Front End // Meetup UX UI @UTN MendozaDiego Suarez
 
Tutorial de Cómo Instalar Ruby On Rails
Tutorial de Cómo Instalar Ruby On RailsTutorial de Cómo Instalar Ruby On Rails
Tutorial de Cómo Instalar Ruby On RailsIsabel Gómez
 
Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...
Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...
Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...OpenExpoES
 
Instalar joomla 2017
Instalar joomla 2017Instalar joomla 2017
Instalar joomla 2017Emerson Garay
 
Clase 1 introducción a symfony 2
Clase 1   introducción a symfony 2Clase 1   introducción a symfony 2
Clase 1 introducción a symfony 2hydras_cs
 
Diapositivas
DiapositivasDiapositivas
Diapositivasak96_86
 

La actualidad más candente (20)

Websockets & Web Messaging
Websockets & Web MessagingWebsockets & Web Messaging
Websockets & Web Messaging
 
Presentación internet kata
Presentación internet kataPresentación internet kata
Presentación internet kata
 
Blazor, un nuevo framework .NET
Blazor, un nuevo framework .NETBlazor, un nuevo framework .NET
Blazor, un nuevo framework .NET
 
Introducción a Node.js
Introducción a Node.jsIntroducción a Node.js
Introducción a Node.js
 
Presentacio Lasalle
Presentacio LasallePresentacio Lasalle
Presentacio Lasalle
 
Un sitio superrápido con joomla!
Un sitio superrápido con joomla!Un sitio superrápido con joomla!
Un sitio superrápido con joomla!
 
Servidor web nginx
Servidor web nginxServidor web nginx
Servidor web nginx
 
Dn12 u3 a10_rcla.
Dn12 u3 a10_rcla.Dn12 u3 a10_rcla.
Dn12 u3 a10_rcla.
 
Introducción a Ruby on rails
Introducción a Ruby on railsIntroducción a Ruby on rails
Introducción a Ruby on rails
 
Ajax
AjaxAjax
Ajax
 
Introducción a herramientas de Roots (José Debuchy, WCBA 2017)
 Introducción a herramientas de Roots (José Debuchy, WCBA 2017) Introducción a herramientas de Roots (José Debuchy, WCBA 2017)
Introducción a herramientas de Roots (José Debuchy, WCBA 2017)
 
Novedades en Arquitectura Front End // Meetup UX UI @UTN Mendoza
Novedades en Arquitectura Front End // Meetup UX UI @UTN MendozaNovedades en Arquitectura Front End // Meetup UX UI @UTN Mendoza
Novedades en Arquitectura Front End // Meetup UX UI @UTN Mendoza
 
Tutorial de Cómo Instalar Ruby On Rails
Tutorial de Cómo Instalar Ruby On RailsTutorial de Cómo Instalar Ruby On Rails
Tutorial de Cómo Instalar Ruby On Rails
 
Pruebas del servicio web
Pruebas del servicio webPruebas del servicio web
Pruebas del servicio web
 
Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...
Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...
Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...
 
Instalar joomla 2017
Instalar joomla 2017Instalar joomla 2017
Instalar joomla 2017
 
Clase 1 introducción a symfony 2
Clase 1   introducción a symfony 2Clase 1   introducción a symfony 2
Clase 1 introducción a symfony 2
 
Diapositivas
DiapositivasDiapositivas
Diapositivas
 
Diapositivas
DiapositivasDiapositivas
Diapositivas
 
Servicios de red amp
Servicios de red   ampServicios de red   amp
Servicios de red amp
 

Similar a Taller de optimizacion de servidores web tipo LAMP

Curso Avanzado PHP para EHU/UPV
Curso Avanzado PHP para EHU/UPVCurso Avanzado PHP para EHU/UPV
Curso Avanzado PHP para EHU/UPVIrontec
 
Optimización de aplicaciones PHP (server side)
Optimización de aplicaciones PHP (server side)Optimización de aplicaciones PHP (server side)
Optimización de aplicaciones PHP (server side)Oriol Jiménez
 
Entonamiento y perfilado de Drupal
Entonamiento y perfilado de DrupalEntonamiento y perfilado de Drupal
Entonamiento y perfilado de Drupalcamposer
 
Drupal 7 para sitios de alto rendimiento y alta disponibilidad
Drupal 7 para sitios de alto rendimiento y alta disponibilidadDrupal 7 para sitios de alto rendimiento y alta disponibilidad
Drupal 7 para sitios de alto rendimiento y alta disponibilidadIván Campaña Naranjo
 
High performance Web Sites
High performance Web SitesHigh performance Web Sites
High performance Web SitesopenfinanceDev
 
Clase 3 instalación y primeros pasos
Clase 3 instalación y primeros pasosClase 3 instalación y primeros pasos
Clase 3 instalación y primeros pasoshydras_cs
 
Introduccion a kata containers
Introduccion a kata containersIntroduccion a kata containers
Introduccion a kata containersJulioMontes23
 
Curso CDA: Seguridade e rendemento en Drupal
Curso CDA: Seguridade e rendemento en DrupalCurso CDA: Seguridade e rendemento en Drupal
Curso CDA: Seguridade e rendemento en DrupalAlberto Permuy Leal
 
Presentación Congreso Internet del Mediterráneo
Presentación Congreso Internet del MediterráneoPresentación Congreso Internet del Mediterráneo
Presentación Congreso Internet del MediterráneoFernando Serer
 
AMP en profundidad
AMP en profundidad AMP en profundidad
AMP en profundidad Joseba Ruiz
 

Similar a Taller de optimizacion de servidores web tipo LAMP (20)

Curso de php
Curso de phpCurso de php
Curso de php
 
Rendimiento extremo en php
Rendimiento extremo en phpRendimiento extremo en php
Rendimiento extremo en php
 
Cherokee presentacion
Cherokee presentacionCherokee presentacion
Cherokee presentacion
 
Performance en Drupal 7
Performance en Drupal 7Performance en Drupal 7
Performance en Drupal 7
 
Curso Avanzado PHP para EHU/UPV
Curso Avanzado PHP para EHU/UPVCurso Avanzado PHP para EHU/UPV
Curso Avanzado PHP para EHU/UPV
 
Optimización de aplicaciones PHP (server side)
Optimización de aplicaciones PHP (server side)Optimización de aplicaciones PHP (server side)
Optimización de aplicaciones PHP (server side)
 
Entonamiento y perfilado de Drupal
Entonamiento y perfilado de DrupalEntonamiento y perfilado de Drupal
Entonamiento y perfilado de Drupal
 
Drupal 7 para sitios de alto rendimiento y alta disponibilidad
Drupal 7 para sitios de alto rendimiento y alta disponibilidadDrupal 7 para sitios de alto rendimiento y alta disponibilidad
Drupal 7 para sitios de alto rendimiento y alta disponibilidad
 
High performance Web Sites
High performance Web SitesHigh performance Web Sites
High performance Web Sites
 
Clase 3 instalación y primeros pasos
Clase 3 instalación y primeros pasosClase 3 instalación y primeros pasos
Clase 3 instalación y primeros pasos
 
Cómo elegir un servidor Web
Cómo elegir un servidor WebCómo elegir un servidor Web
Cómo elegir un servidor Web
 
Alternativas de hosting para WordPress
Alternativas de hosting para WordPressAlternativas de hosting para WordPress
Alternativas de hosting para WordPress
 
20170405 - Ecosistema Javascript
20170405 - Ecosistema Javascript20170405 - Ecosistema Javascript
20170405 - Ecosistema Javascript
 
Introduccion a kata containers
Introduccion a kata containersIntroduccion a kata containers
Introduccion a kata containers
 
Curso CDA: Seguridade e rendemento en Drupal
Curso CDA: Seguridade e rendemento en DrupalCurso CDA: Seguridade e rendemento en Drupal
Curso CDA: Seguridade e rendemento en Drupal
 
0 entorno php
0 entorno php0 entorno php
0 entorno php
 
Presentación Congreso Internet del Mediterráneo
Presentación Congreso Internet del MediterráneoPresentación Congreso Internet del Mediterráneo
Presentación Congreso Internet del Mediterráneo
 
¿Cómo elegir servidor web?
¿Cómo elegir servidor web?¿Cómo elegir servidor web?
¿Cómo elegir servidor web?
 
Tema1
Tema1Tema1
Tema1
 
AMP en profundidad
AMP en profundidad AMP en profundidad
AMP en profundidad
 

Más de Yannick Warnier

Chamilo en FLISOL Perú 2018
Chamilo en FLISOL Perú 2018Chamilo en FLISOL Perú 2018
Chamilo en FLISOL Perú 2018Yannick Warnier
 
The benefits of using Git
The benefits of using GitThe benefits of using Git
The benefits of using GitYannick Warnier
 
Skillms, solution de gestion des talents
Skillms, solution de gestion des talentsSkillms, solution de gestion des talents
Skillms, solution de gestion des talentsYannick Warnier
 
Chamilo "Lectoura", proyecto Hackaton EdTech, Lima 2017
Chamilo "Lectoura", proyecto Hackaton EdTech, Lima 2017Chamilo "Lectoura", proyecto Hackaton EdTech, Lima 2017
Chamilo "Lectoura", proyecto Hackaton EdTech, Lima 2017Yannick Warnier
 
Novedades de Chamilo 1.11 - 2017
Novedades de Chamilo 1.11 - 2017Novedades de Chamilo 1.11 - 2017
Novedades de Chamilo 1.11 - 2017Yannick Warnier
 
Chamilo, qu'est-ce? - Chamilo Camp Lyon 2017
Chamilo, qu'est-ce? - Chamilo Camp Lyon 2017Chamilo, qu'est-ce? - Chamilo Camp Lyon 2017
Chamilo, qu'est-ce? - Chamilo Camp Lyon 2017Yannick Warnier
 
L'avenir de Chamilo - 2017
L'avenir de Chamilo - 2017L'avenir de Chamilo - 2017
L'avenir de Chamilo - 2017Yannick Warnier
 
Introducción a Nginx y PHP FPM
Introducción a Nginx y PHP FPMIntroducción a Nginx y PHP FPM
Introducción a Nginx y PHP FPMYannick Warnier
 
Desarrollo del plugin Chamilo-Wordpress
Desarrollo del plugin Chamilo-WordpressDesarrollo del plugin Chamilo-Wordpress
Desarrollo del plugin Chamilo-WordpressYannick Warnier
 
Calidad de código en Chamilo: Behat, Travis-CI y Scrutinizer-CI
Calidad de código en Chamilo: Behat, Travis-CI y Scrutinizer-CICalidad de código en Chamilo: Behat, Travis-CI y Scrutinizer-CI
Calidad de código en Chamilo: Behat, Travis-CI y Scrutinizer-CIYannick Warnier
 
Como usar un aula virtual como recurso educativo - Caso Chamilo
Como usar un aula virtual como recurso educativo - Caso ChamiloComo usar un aula virtual como recurso educativo - Caso Chamilo
Como usar un aula virtual como recurso educativo - Caso ChamiloYannick Warnier
 
Crear cursos-virtuales-chamilo-flisol-2014
Crear cursos-virtuales-chamilo-flisol-2014Crear cursos-virtuales-chamilo-flisol-2014
Crear cursos-virtuales-chamilo-flisol-2014Yannick Warnier
 
Chamilo LMS y otros LMSes - Universidad de Valencia, España - Octubre 2013
Chamilo LMS y otros LMSes - Universidad de Valencia, España - Octubre 2013Chamilo LMS y otros LMSes - Universidad de Valencia, España - Octubre 2013
Chamilo LMS y otros LMSes - Universidad de Valencia, España - Octubre 2013Yannick Warnier
 
Prepa certificación docente Chamilo 1.8 (CHACOBU)
Prepa certificación docente Chamilo 1.8 (CHACOBU)Prepa certificación docente Chamilo 1.8 (CHACOBU)
Prepa certificación docente Chamilo 1.8 (CHACOBU)Yannick Warnier
 
Chamilo advantages against other LMSes
Chamilo advantages against other LMSesChamilo advantages against other LMSes
Chamilo advantages against other LMSesYannick Warnier
 
Chamilo, c'est pas le Pérou - Jeudis du libre
Chamilo, c'est pas le Pérou - Jeudis du libreChamilo, c'est pas le Pérou - Jeudis du libre
Chamilo, c'est pas le Pérou - Jeudis du libreYannick Warnier
 
TICs en educación y Chamilo, introducción para Maestria en Edumática, 2011
TICs en educación y Chamilo, introducción para Maestria en Edumática, 2011TICs en educación y Chamilo, introducción para Maestria en Edumática, 2011
TICs en educación y Chamilo, introducción para Maestria en Edumática, 2011Yannick Warnier
 

Más de Yannick Warnier (20)

Chamilo, 12 ans déjà
Chamilo, 12 ans déjàChamilo, 12 ans déjà
Chamilo, 12 ans déjà
 
Chamilo en FLISOL Perú 2018
Chamilo en FLISOL Perú 2018Chamilo en FLISOL Perú 2018
Chamilo en FLISOL Perú 2018
 
Novedades de PHP 7.*
Novedades de PHP 7.*Novedades de PHP 7.*
Novedades de PHP 7.*
 
The benefits of using Git
The benefits of using GitThe benefits of using Git
The benefits of using Git
 
Skillms, solution de gestion des talents
Skillms, solution de gestion des talentsSkillms, solution de gestion des talents
Skillms, solution de gestion des talents
 
Chamilo "Lectoura", proyecto Hackaton EdTech, Lima 2017
Chamilo "Lectoura", proyecto Hackaton EdTech, Lima 2017Chamilo "Lectoura", proyecto Hackaton EdTech, Lima 2017
Chamilo "Lectoura", proyecto Hackaton EdTech, Lima 2017
 
Novedades de Chamilo 1.11 - 2017
Novedades de Chamilo 1.11 - 2017Novedades de Chamilo 1.11 - 2017
Novedades de Chamilo 1.11 - 2017
 
Chamilo, qu'est-ce? - Chamilo Camp Lyon 2017
Chamilo, qu'est-ce? - Chamilo Camp Lyon 2017Chamilo, qu'est-ce? - Chamilo Camp Lyon 2017
Chamilo, qu'est-ce? - Chamilo Camp Lyon 2017
 
L'avenir de Chamilo - 2017
L'avenir de Chamilo - 2017L'avenir de Chamilo - 2017
L'avenir de Chamilo - 2017
 
Introducción a Nginx y PHP FPM
Introducción a Nginx y PHP FPMIntroducción a Nginx y PHP FPM
Introducción a Nginx y PHP FPM
 
Desarrollo del plugin Chamilo-Wordpress
Desarrollo del plugin Chamilo-WordpressDesarrollo del plugin Chamilo-Wordpress
Desarrollo del plugin Chamilo-Wordpress
 
Calidad de código en Chamilo: Behat, Travis-CI y Scrutinizer-CI
Calidad de código en Chamilo: Behat, Travis-CI y Scrutinizer-CICalidad de código en Chamilo: Behat, Travis-CI y Scrutinizer-CI
Calidad de código en Chamilo: Behat, Travis-CI y Scrutinizer-CI
 
Como usar un aula virtual como recurso educativo - Caso Chamilo
Como usar un aula virtual como recurso educativo - Caso ChamiloComo usar un aula virtual como recurso educativo - Caso Chamilo
Como usar un aula virtual como recurso educativo - Caso Chamilo
 
Asociación Chamilo
Asociación ChamiloAsociación Chamilo
Asociación Chamilo
 
Crear cursos-virtuales-chamilo-flisol-2014
Crear cursos-virtuales-chamilo-flisol-2014Crear cursos-virtuales-chamilo-flisol-2014
Crear cursos-virtuales-chamilo-flisol-2014
 
Chamilo LMS y otros LMSes - Universidad de Valencia, España - Octubre 2013
Chamilo LMS y otros LMSes - Universidad de Valencia, España - Octubre 2013Chamilo LMS y otros LMSes - Universidad de Valencia, España - Octubre 2013
Chamilo LMS y otros LMSes - Universidad de Valencia, España - Octubre 2013
 
Prepa certificación docente Chamilo 1.8 (CHACOBU)
Prepa certificación docente Chamilo 1.8 (CHACOBU)Prepa certificación docente Chamilo 1.8 (CHACOBU)
Prepa certificación docente Chamilo 1.8 (CHACOBU)
 
Chamilo advantages against other LMSes
Chamilo advantages against other LMSesChamilo advantages against other LMSes
Chamilo advantages against other LMSes
 
Chamilo, c'est pas le Pérou - Jeudis du libre
Chamilo, c'est pas le Pérou - Jeudis du libreChamilo, c'est pas le Pérou - Jeudis du libre
Chamilo, c'est pas le Pérou - Jeudis du libre
 
TICs en educación y Chamilo, introducción para Maestria en Edumática, 2011
TICs en educación y Chamilo, introducción para Maestria en Edumática, 2011TICs en educación y Chamilo, introducción para Maestria en Edumática, 2011
TICs en educación y Chamilo, introducción para Maestria en Edumática, 2011
 

Último

Presentacion y Extension de tema para Blogger.pptx
Presentacion y Extension de tema para Blogger.pptxPresentacion y Extension de tema para Blogger.pptx
Presentacion y Extension de tema para Blogger.pptxTaim11
 
Inteligencia Artificial para usuarios nivel inicial
Inteligencia Artificial para usuarios nivel inicialInteligencia Artificial para usuarios nivel inicial
Inteligencia Artificial para usuarios nivel inicialEducática
 
Bloque 1 _ Lectura base - Sistemas Distribuidos
Bloque 1 _ Lectura base - Sistemas DistribuidosBloque 1 _ Lectura base - Sistemas Distribuidos
Bloque 1 _ Lectura base - Sistemas DistribuidosLuisAntonioLopezGome
 
De Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptxDe Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptxdoloresolmosantiago
 
¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf7adelosriosarangojua
 
lenguaje algebraico.pptx álgebra, trigonometria
lenguaje algebraico.pptx álgebra, trigonometrialenguaje algebraico.pptx álgebra, trigonometria
lenguaje algebraico.pptx álgebra, trigonometriasofiasonder
 
Gestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL ServerGestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL ServerRobertoCarrancioFern
 
taller de tablas en word para estudiantes de secundaria
taller de tablas en word para estudiantes de secundariataller de tablas en word para estudiantes de secundaria
taller de tablas en word para estudiantes de secundariaandresingsiseo
 
proyectos_social_y_socioproductivos _mapas_conceptuales
proyectos_social_y_socioproductivos _mapas_conceptualesproyectos_social_y_socioproductivos _mapas_conceptuales
proyectos_social_y_socioproductivos _mapas_conceptualesssuserbe0d1c
 
Introducción a la robótica con arduino..pptx
Introducción a la robótica con arduino..pptxIntroducción a la robótica con arduino..pptx
Introducción a la robótica con arduino..pptxJohanna4222
 
Uso de las TIC en la vida cotidiana .
Uso de las TIC en la vida cotidiana       .Uso de las TIC en la vida cotidiana       .
Uso de las TIC en la vida cotidiana .itzyrivera61103
 
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiCVelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC6dwwcgtpfx
 
Unidad 1- Historia y Evolucion de las computadoras.pdf
Unidad 1- Historia y Evolucion de las computadoras.pdfUnidad 1- Historia y Evolucion de las computadoras.pdf
Unidad 1- Historia y Evolucion de las computadoras.pdfMarianneBAyn
 
manual-de-oleohidraulica-industrial-vickers.pdf
manual-de-oleohidraulica-industrial-vickers.pdfmanual-de-oleohidraulica-industrial-vickers.pdf
manual-de-oleohidraulica-industrial-vickers.pdfprofmartinsuarez
 
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdfPons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdffrank0071
 
herramientas informaticas mas utilizadas
herramientas informaticas mas utilizadasherramientas informaticas mas utilizadas
herramientas informaticas mas utilizadaspqeilyn0827
 
Licencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de SoftwareLicencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de SoftwareAndres Avila
 
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...Kevin Serna
 
NIVEL DE MADUREZ TECNOLÓGICA (TRL).pptx
NIVEL DE  MADUREZ TECNOLÓGICA (TRL).pptxNIVEL DE  MADUREZ TECNOLÓGICA (TRL).pptx
NIVEL DE MADUREZ TECNOLÓGICA (TRL).pptxjarniel1
 
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUALJORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUALGuadalinfoHuscarGuad
 

Último (20)

Presentacion y Extension de tema para Blogger.pptx
Presentacion y Extension de tema para Blogger.pptxPresentacion y Extension de tema para Blogger.pptx
Presentacion y Extension de tema para Blogger.pptx
 
Inteligencia Artificial para usuarios nivel inicial
Inteligencia Artificial para usuarios nivel inicialInteligencia Artificial para usuarios nivel inicial
Inteligencia Artificial para usuarios nivel inicial
 
Bloque 1 _ Lectura base - Sistemas Distribuidos
Bloque 1 _ Lectura base - Sistemas DistribuidosBloque 1 _ Lectura base - Sistemas Distribuidos
Bloque 1 _ Lectura base - Sistemas Distribuidos
 
De Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptxDe Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptx
 
¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf¡Mira mi nuevo diseño hecho en Canva!.pdf
¡Mira mi nuevo diseño hecho en Canva!.pdf
 
lenguaje algebraico.pptx álgebra, trigonometria
lenguaje algebraico.pptx álgebra, trigonometrialenguaje algebraico.pptx álgebra, trigonometria
lenguaje algebraico.pptx álgebra, trigonometria
 
Gestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL ServerGestión de concurrencia y bloqueos en SQL Server
Gestión de concurrencia y bloqueos en SQL Server
 
taller de tablas en word para estudiantes de secundaria
taller de tablas en word para estudiantes de secundariataller de tablas en word para estudiantes de secundaria
taller de tablas en word para estudiantes de secundaria
 
proyectos_social_y_socioproductivos _mapas_conceptuales
proyectos_social_y_socioproductivos _mapas_conceptualesproyectos_social_y_socioproductivos _mapas_conceptuales
proyectos_social_y_socioproductivos _mapas_conceptuales
 
Introducción a la robótica con arduino..pptx
Introducción a la robótica con arduino..pptxIntroducción a la robótica con arduino..pptx
Introducción a la robótica con arduino..pptx
 
Uso de las TIC en la vida cotidiana .
Uso de las TIC en la vida cotidiana       .Uso de las TIC en la vida cotidiana       .
Uso de las TIC en la vida cotidiana .
 
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiCVelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
VelderrainPerez_Paola_M1C1G63-097.pptx. LAS TiC
 
Unidad 1- Historia y Evolucion de las computadoras.pdf
Unidad 1- Historia y Evolucion de las computadoras.pdfUnidad 1- Historia y Evolucion de las computadoras.pdf
Unidad 1- Historia y Evolucion de las computadoras.pdf
 
manual-de-oleohidraulica-industrial-vickers.pdf
manual-de-oleohidraulica-industrial-vickers.pdfmanual-de-oleohidraulica-industrial-vickers.pdf
manual-de-oleohidraulica-industrial-vickers.pdf
 
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdfPons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
Pons, A. - El desorden digital - guia para historiadores y humanistas [2013].pdf
 
herramientas informaticas mas utilizadas
herramientas informaticas mas utilizadasherramientas informaticas mas utilizadas
herramientas informaticas mas utilizadas
 
Licencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de SoftwareLicencias para el Uso y el Desarrollo de Software
Licencias para el Uso y el Desarrollo de Software
 
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
HerramientasInformaticas ¿Que es? - ¿Para que sirve? - Recomendaciones - Comp...
 
NIVEL DE MADUREZ TECNOLÓGICA (TRL).pptx
NIVEL DE  MADUREZ TECNOLÓGICA (TRL).pptxNIVEL DE  MADUREZ TECNOLÓGICA (TRL).pptx
NIVEL DE MADUREZ TECNOLÓGICA (TRL).pptx
 
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUALJORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
JORNADA INTELIGENCIA ARTIFICIAL Y REALIDAD VIRTUAL
 

Taller de optimizacion de servidores web tipo LAMP

  • 1. Octubre 2012, Puebla, México Optimización de servidores web de software libre Yannick Warnier
  • 2. Plan de acción ● LAMP ● Chamilo ● Firebug ● Apache Benchmark ● XHProf ● APC y MemCache ● Munin ● Expires ● Monit
  • 3. 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-server Nota : PHP 5.4 más eficiente
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. XHProf ● Librería de análisis publicada por Facebook ● Permite medir ● uso de ciclos de procesador ● uso de memoria
  • 8. 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
  • 9. Memcache ● Almacenamiento de variables ● Servidor distribuido ● No hay redundancia
  • 10. Munin ● Munin permite seguir cambios en el tiempo
  • 11. 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>
  • 12. Monit ● Que pasa cuando un servicio se cae o entra en sobrecarga ? ● Monit permite configurar límites y ● Enviar correos ● Reiniciar servicios
  • 13. 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é
  • 14. Contacto Ing. Yannick Warnier Director de tecnologías - BeezNest Presidente - Asociación Chamilo Info@beeznest.com                   @ywarnier

Notas del editor

  1. Estas diapositivas sirven de base para el taller de introducción a la optimización de sevidores web realizado por BeezNest.
  2. 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.
  3. 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
  4. 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).
  5. 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.
  6. 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.
  7. 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/
  8. 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.
  9. 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.
  10. 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
  11. 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.
  12. 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 »
  13. Varnish puede ser su mejor amigo en términos de optimización de servidores web. Permite hacer micro-caché, caché y balanceo de carga.
  14. 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