Configurandoun ServidorPor: Ing. Dennis Cohn Muroy
Agenda● Generalidades: Apache, MySQL● Optimización: Apache, MySQL, PHP● Pruebas de Stress● Escalabilidad Vertical● Escalab...
¿Qué Sistemas Operativos conoceno han utilizado?
¿Qué servicios web utilizan?
¿Qué servidores conocen?
Servidor Web: Apache● Programa encargado de transferir páginas web● Multiplataforma
Base de Datos: MySQL
Base de Datos: MySQL● Base de Datos● Colección estructurada de datos.● Sistema de Gestión de Bases de Datos● Añadir, acced...
Base de Datos: MySQL● Motores● InnoDB● MyISAM● Heap● Archive
Optimizando Apache● Desactivar módulos● Máximo número de clientes● Pool de conexiones● Activando la compresión HTTP
Optimizando MySQL● Índices en las tablas● Tipos de datos de las columnas● Consultas utilizan los índices● Evitar consultas...
Optimizando MySQL● key_buffer_size (índices)● 25% ~ 50% mem. Caches● Hits: 100 - ((Key_reads*100)/key_reads_requests)● tab...
Optimizando MySQL● query_cache_size (resultados)● Hits: Qcache_hits/ (Qcache_hits + com_select)● tmp_table_size (tablas te...
Optimizando MySQL● read_buffer_size (full scans)● read_rnd_buffer_size (full scans sort)● read_buffer_size = read_rnd_buff...
Optimizando MySQL● 32 bits -> máx 2GB● 64 bits -> máx 4GB (< 5.1)Max GB = key_buffer_size + query_cache_size + tmp_table_s...
PHP eacceleratorOpCodeParserInstruction SetScript
PHP eacceleratorOpCodeParserInstruction SetScript
Efectuando Pruebas: JMeter● Plan de Pruebas● HTTP Cache Manager● Valores por Defecto para Petición HTTP● Flujo de la Prueb...
Efectuando Pruebas: JMeter
Efectuando Pruebas: JMeterServidor conparámetrospredefinidosServidor conparámetrosoptimizados
Monitorizando la Cargahtopmtop
Ya optimicé ... la carga del servidores muy elevada ...
Escalabilidad Vertical● Crecer añadiendo recursos● Memoria Insuficiente● Considerar Arquitectura del SO● Falta de espacio ...
¿Y si no fuera posible escalarverticalmente?
Escalabilidad Horizontal● Crecer añadiendo nodos● Distribuir las funciones● Varios nodos● Tiende a ser más económico● Larg...
Balanceo de Carga● Alto número de visitas● Diversos mecanismos● Tecnologías● Pound● Balance● Piranha
Replicación● Copiar datos de un servidor (Maestro) a otro(Esclavo).● Objetivo:● Distribuir datos (grandes distancias)● Dis...
Replicación● Maestro – Maestro● Modificar valores en ambos nodos.● Maestro – Esclavo● Maestro (Escritura) / Esclavo (Lectu...
Enrutamiento de Querys● Maestro: Insert, Update, Delete● Esclavo: Select● Alternativas● MySQL Proxy● Tungsten
Caché en Memoria● Caché llave – valor enmemoria● Almacena tipos de datosprimitivos y serializados.● Reduce consultas abase...
Servidor de Contenido Estático● 3 objetos dinámicos● Más de 22 objetosestáticos por páginaY siguen aumentando ...
Combinando las diversas tecnologías ...
MaestroEsclavo nEsclavo
Referencias● High Performance MySQL● Building Scalable Web Sites● MySQL [www.mysql.com]● Memcached [http://memcached.org]●...
GraciasIng. Dennis Cohn Muroydennis.cohn@pucp.edu.peFollow me: @denniscm20
Upcoming SlideShare
Loading in …5
×

Configurando un servidor para Moodle

1,113 views

Published on

Presentación sobre como preparar un entorno LAMP para llevar a cabo una instalación de Moodle que brinde una Alta Disponibilidad.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

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

No notes for slide

Configurando un servidor para Moodle

  1. 1. Configurandoun ServidorPor: Ing. Dennis Cohn Muroy
  2. 2. Agenda● Generalidades: Apache, MySQL● Optimización: Apache, MySQL, PHP● Pruebas de Stress● Escalabilidad Vertical● Escalabilidad Horizontal
  3. 3. ¿Qué Sistemas Operativos conoceno han utilizado?
  4. 4. ¿Qué servicios web utilizan?
  5. 5. ¿Qué servidores conocen?
  6. 6. Servidor Web: Apache● Programa encargado de transferir páginas web● Multiplataforma
  7. 7. Base de Datos: MySQL
  8. 8. Base de Datos: MySQL● Base de Datos● Colección estructurada de datos.● Sistema de Gestión de Bases de Datos● Añadir, acceder, y procesar datos en una base dedatos● Bases de datos relacionales● Datos en tablas separadas.
  9. 9. Base de Datos: MySQL● Motores● InnoDB● MyISAM● Heap● Archive
  10. 10. Optimizando Apache● Desactivar módulos● Máximo número de clientes● Pool de conexiones● Activando la compresión HTTP
  11. 11. Optimizando MySQL● Índices en las tablas● Tipos de datos de las columnas● Consultas utilizan los índices● Evitar consultas anidadas innecesarios● Optimizar los parámetros del MySQL
  12. 12. Optimizando MySQL● key_buffer_size (índices)● 25% ~ 50% mem. Caches● Hits: 100 - ((Key_reads*100)/key_reads_requests)● table_cache (tablas)● Opened_tables / max_used_connections● Opened tables valor pequeño● thread_cache_size (conexión)● Hits: threads_created/connections
  13. 13. Optimizando MySQL● query_cache_size (resultados)● Hits: Qcache_hits/ (Qcache_hits + com_select)● tmp_table_size (tablas temporales)● Created_tmp_disk_tables
  14. 14. Optimizando MySQL● read_buffer_size (full scans)● read_rnd_buffer_size (full scans sort)● read_buffer_size = read_rnd_buffer_size● Asignar 1K por cada 1M● sort_buffer_size (sort)● join_buffer_size (join)
  15. 15. Optimizando MySQL● 32 bits -> máx 2GB● 64 bits -> máx 4GB (< 5.1)Max GB = key_buffer_size + query_cache_size + tmp_table_size +thread_cache_size + max_connections * (read_buffer_size +read_rnd_buffer_size + sort_buffer_size + join_buffer_size + binlog_cache_size)) / 1073741824
  16. 16. PHP eacceleratorOpCodeParserInstruction SetScript
  17. 17. PHP eacceleratorOpCodeParserInstruction SetScript
  18. 18. Efectuando Pruebas: JMeter● Plan de Pruebas● HTTP Cache Manager● Valores por Defecto para Petición HTTP● Flujo de la Prueba– Gestor de Cookies HTTP– Petición HTTP– Controlador Simple● Peticiones HTTP– Resultados
  19. 19. Efectuando Pruebas: JMeter
  20. 20. Efectuando Pruebas: JMeterServidor conparámetrospredefinidosServidor conparámetrosoptimizados
  21. 21. Monitorizando la Cargahtopmtop
  22. 22. Ya optimicé ... la carga del servidores muy elevada ...
  23. 23. Escalabilidad Vertical● Crecer añadiendo recursos● Memoria Insuficiente● Considerar Arquitectura del SO● Falta de espacio en discos● CPU en constante uso● Alto tráfico en el servidor -> bond
  24. 24. ¿Y si no fuera posible escalarverticalmente?
  25. 25. Escalabilidad Horizontal● Crecer añadiendo nodos● Distribuir las funciones● Varios nodos● Tiende a ser más económico● Largo plazo
  26. 26. Balanceo de Carga● Alto número de visitas● Diversos mecanismos● Tecnologías● Pound● Balance● Piranha
  27. 27. Replicación● Copiar datos de un servidor (Maestro) a otro(Esclavo).● Objetivo:● Distribuir datos (grandes distancias)● Distribuir la carga de los servidores
  28. 28. Replicación● Maestro – Maestro● Modificar valores en ambos nodos.● Maestro – Esclavo● Maestro (Escritura) / Esclavo (Lectura)Solo se distribuyen SELECTS
  29. 29. Enrutamiento de Querys● Maestro: Insert, Update, Delete● Esclavo: Select● Alternativas● MySQL Proxy● Tungsten
  30. 30. Caché en Memoria● Caché llave – valor enmemoria● Almacena tipos de datosprimitivos y serializados.● Reduce consultas abase de datos.
  31. 31. Servidor de Contenido Estático● 3 objetos dinámicos● Más de 22 objetosestáticos por páginaY siguen aumentando ...
  32. 32. Combinando las diversas tecnologías ...
  33. 33. MaestroEsclavo nEsclavo
  34. 34. Referencias● High Performance MySQL● Building Scalable Web Sites● MySQL [www.mysql.com]● Memcached [http://memcached.org]● MySQL Replication Features(Thalmann, Lars)
  35. 35. GraciasIng. Dennis Cohn Muroydennis.cohn@pucp.edu.peFollow me: @denniscm20

×