Optimizacion de aplicaciones LAMP

22
Optimización de aplicaciones LAMP @migueltonic Puno, 19 diciembre 2009

description

Charla presentada en el segundo BarcampPuno

Transcript of Optimizacion de aplicaciones LAMP

Page 1: Optimizacion de aplicaciones LAMP

Optimización de aplicaciones LAMP

@migueltonic

Puno, 19 diciembre 2009

Page 2: Optimizacion de aplicaciones LAMP

Objetivo

• Definir un entorno de desarrollo LAMP• Razones para optimizar• Optimización• “La clave”

Page 3: Optimizacion de aplicaciones LAMP

Entorno LAMP

• Linux• Apache• MySql• PHP / Perl / Phyton

Page 4: Optimizacion de aplicaciones LAMP

Otros entornos

• WAMP (Windows)• MAMP (Mac OS)• SAMP (SAMP)• OAMP (OpenBSD)

Page 5: Optimizacion de aplicaciones LAMP

Razones para optimizar

• Loading…

Page 6: Optimizacion de aplicaciones LAMP

Razones para optimizar

• Satisfacción de usuarios• Satisfacción de anunciante$• Satisfacción de jefes• Satisfacción de inversores• Satisfacción de hosting• Satisfacción de google• Satisfacción de equipo de trabajo• Satisfacción propia :P

Page 7: Optimizacion de aplicaciones LAMP

Razones para optimizar

• Loading…

Page 8: Optimizacion de aplicaciones LAMP

Optimizando Linux

• Servidores– Hosting / ubicación geográfica– Separar contenido estático / dinámico– Acceso a disco ( RAID 0 … 10 )– Conectividad entre servidores– Planificar espacio– Copias de seguridad

Page 9: Optimizacion de aplicaciones LAMP

Optimizando Linux

• Sistema operativo– Escoger distribución:

• Base de datos, frontend, ficheros, usuarios/admin

– Administración por Parallels / Manual– Sistema de monitoreo

• Cacti / munin• CPU, Memoria, Disco, Procesos, etc

– Documentar uso del servidor– Otras optimizaciones avanzadas (admin)

• Distribución de carga entre procesadores…

Page 10: Optimizacion de aplicaciones LAMP

Optimizando Apache

• Apache / Lighthttp, nginx• Redireccionamiento “urls amigables”

– misitio.com/buscar.php?q=barcamp&pag=2– misitio.com/barcamp/2

• Cantidad de conexiones (MaxClients)• Permisos a directorios• Compresión

Page 11: Optimizacion de aplicaciones LAMP

Optimizando MySql

• Tipo de motor utilizado – MyISAM / InnoDB / etc

• Diseño de datos– Sólo información necesaria ( atomicidad )

• Normalización– Orden / Velocidad

• Índices– Los necesarios

Page 12: Optimizacion de aplicaciones LAMP

Optimizando MySql

• Queries – Utilizar “explain”

• Utilidad de datos antiguos– Copias temporales y backups

• Monitorear– Consultas lentas, errores

• Crecimiento– Replicación de datos

Page 13: Optimizacion de aplicaciones LAMP

Optimizando PHP

• Compilación PHP

http://phplens.com/lens/php-book/optimizing-debugging-php.php

Page 14: Optimizacion de aplicaciones LAMP

Optimizando PHP

http://phplens.com/lens/php-book/optimizing-debugging-php.php

Page 15: Optimizacion de aplicaciones LAMP

Optimizando PHP

• Utilizar caché de código– Memcache– eAcelerator

• Ejemplo

Page 16: Optimizacion de aplicaciones LAMP

Optimizando PHP

Page 17: Optimizacion de aplicaciones LAMP

Optimizando PHP

Page 18: Optimizacion de aplicaciones LAMP

Optimizando PHP

• Sessiones ( disco, BD, memoria )• /var/lib/php/session

Page 19: Optimizacion de aplicaciones LAMP

Optimizando PHP

• Compresión de HTML ( gzip header )• Manejo de mensajes de error• Buenas prácticas de programación

Page 20: Optimizacion de aplicaciones LAMP

La clave

Page 21: Optimizacion de aplicaciones LAMP

La clave

• “Sentido común es el menos común de los sentidos”

H.Greele

Page 22: Optimizacion de aplicaciones LAMP

• Gracias!!

http://dev.migueltonic.pe