Optimización de código en proyectos de Software Libre · HTTP Servers Flisol Santiago 2011 / ...
Transcript of Optimización de código en proyectos de Software Libre · HTTP Servers Flisol Santiago 2011 / ...
![Page 1: Optimización de código en proyectos de Software Libre · HTTP Servers Flisol Santiago 2011 / Apache Benchmark – Live Test Archivo : 100 bytes NginX : v1.0 port = 2002](https://reader034.fdocuments.mx/reader034/viewer/2022052011/60274d7b10f12319d1306c13/html5/thumbnails/1.jpg)
Optimización de códigoen proyectos de Software Libre
Eduardo Silva <[email protected]> ; twitter.com/edsiper
![Page 2: Optimización de código en proyectos de Software Libre · HTTP Servers Flisol Santiago 2011 / Apache Benchmark – Live Test Archivo : 100 bytes NginX : v1.0 port = 2002](https://reader034.fdocuments.mx/reader034/viewer/2022052011/60274d7b10f12319d1306c13/html5/thumbnails/2.jpg)
SoftwareFlisol Santiago 2011 / http://edsiper.linuxchile.cl
![Page 3: Optimización de código en proyectos de Software Libre · HTTP Servers Flisol Santiago 2011 / Apache Benchmark – Live Test Archivo : 100 bytes NginX : v1.0 port = 2002](https://reader034.fdocuments.mx/reader034/viewer/2022052011/60274d7b10f12319d1306c13/html5/thumbnails/3.jpg)
¿ Optimizar ?
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
![Page 4: Optimización de código en proyectos de Software Libre · HTTP Servers Flisol Santiago 2011 / Apache Benchmark – Live Test Archivo : 100 bytes NginX : v1.0 port = 2002](https://reader034.fdocuments.mx/reader034/viewer/2022052011/60274d7b10f12319d1306c13/html5/thumbnails/4.jpg)
✔ Distintas necesidades- Servidores
- Desktop - Laptop - Teléfonos - Embedded devices
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
![Page 5: Optimización de código en proyectos de Software Libre · HTTP Servers Flisol Santiago 2011 / Apache Benchmark – Live Test Archivo : 100 bytes NginX : v1.0 port = 2002](https://reader034.fdocuments.mx/reader034/viewer/2022052011/60274d7b10f12319d1306c13/html5/thumbnails/5.jpg)
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
![Page 6: Optimización de código en proyectos de Software Libre · HTTP Servers Flisol Santiago 2011 / Apache Benchmark – Live Test Archivo : 100 bytes NginX : v1.0 port = 2002](https://reader034.fdocuments.mx/reader034/viewer/2022052011/60274d7b10f12319d1306c13/html5/thumbnails/6.jpg)
El Hardware es limitado
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
![Page 7: Optimización de código en proyectos de Software Libre · HTTP Servers Flisol Santiago 2011 / Apache Benchmark – Live Test Archivo : 100 bytes NginX : v1.0 port = 2002](https://reader034.fdocuments.mx/reader034/viewer/2022052011/60274d7b10f12319d1306c13/html5/thumbnails/7.jpg)
Chrome v/s Firefox
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
![Page 8: Optimización de código en proyectos de Software Libre · HTTP Servers Flisol Santiago 2011 / Apache Benchmark – Live Test Archivo : 100 bytes NginX : v1.0 port = 2002](https://reader034.fdocuments.mx/reader034/viewer/2022052011/60274d7b10f12319d1306c13/html5/thumbnails/8.jpg)
Bajemos un peldaño...
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
![Page 9: Optimización de código en proyectos de Software Libre · HTTP Servers Flisol Santiago 2011 / Apache Benchmark – Live Test Archivo : 100 bytes NginX : v1.0 port = 2002](https://reader034.fdocuments.mx/reader034/viewer/2022052011/60274d7b10f12319d1306c13/html5/thumbnails/9.jpg)
GNU/LinuxFlisol Santiago 2011 / http://edsiper.linuxchile.cl
![Page 10: Optimización de código en proyectos de Software Libre · HTTP Servers Flisol Santiago 2011 / Apache Benchmark – Live Test Archivo : 100 bytes NginX : v1.0 port = 2002](https://reader034.fdocuments.mx/reader034/viewer/2022052011/60274d7b10f12319d1306c13/html5/thumbnails/10.jpg)
Linux Kernel
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
![Page 11: Optimización de código en proyectos de Software Libre · HTTP Servers Flisol Santiago 2011 / Apache Benchmark – Live Test Archivo : 100 bytes NginX : v1.0 port = 2002](https://reader034.fdocuments.mx/reader034/viewer/2022052011/60274d7b10f12319d1306c13/html5/thumbnails/11.jpg)
Linux Kernel - Scheduler
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
![Page 12: Optimización de código en proyectos de Software Libre · HTTP Servers Flisol Santiago 2011 / Apache Benchmark – Live Test Archivo : 100 bytes NginX : v1.0 port = 2002](https://reader034.fdocuments.mx/reader034/viewer/2022052011/60274d7b10f12319d1306c13/html5/thumbnails/12.jpg)
Linux Kernel - Scheduler
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
![Page 13: Optimización de código en proyectos de Software Libre · HTTP Servers Flisol Santiago 2011 / Apache Benchmark – Live Test Archivo : 100 bytes NginX : v1.0 port = 2002](https://reader034.fdocuments.mx/reader034/viewer/2022052011/60274d7b10f12319d1306c13/html5/thumbnails/13.jpg)
¿ quien primero ?
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
![Page 14: Optimización de código en proyectos de Software Libre · HTTP Servers Flisol Santiago 2011 / Apache Benchmark – Live Test Archivo : 100 bytes NginX : v1.0 port = 2002](https://reader034.fdocuments.mx/reader034/viewer/2022052011/60274d7b10f12319d1306c13/html5/thumbnails/14.jpg)
Benchmarks
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
![Page 15: Optimización de código en proyectos de Software Libre · HTTP Servers Flisol Santiago 2011 / Apache Benchmark – Live Test Archivo : 100 bytes NginX : v1.0 port = 2002](https://reader034.fdocuments.mx/reader034/viewer/2022052011/60274d7b10f12319d1306c13/html5/thumbnails/15.jpg)
HTTP ServersFlisol Santiago 2011 / http://edsiper.linuxchile.cl
Apache Benchmark
Permite obtener una “pseudo” idea de cuantos“requests” el servidor puede procesar por segundo
ab -n 15000 -c20 -k http://SERVER:IP/archivo
![Page 16: Optimización de código en proyectos de Software Libre · HTTP Servers Flisol Santiago 2011 / Apache Benchmark – Live Test Archivo : 100 bytes NginX : v1.0 port = 2002](https://reader034.fdocuments.mx/reader034/viewer/2022052011/60274d7b10f12319d1306c13/html5/thumbnails/16.jpg)
HTTP ServersFlisol Santiago 2011 / http://edsiper.linuxchile.cl
Apache Benchmark – Live Test
Archivo : 100 bytes
NginX : v1.0 port = 2002Cherokee : v1.2.2 port = 2003Apache2 : v2.2.17 port = 80Monkey : v0.14.0 port = 2001
ab -n 15000 -c 20 -k http://localhost/100b.txt
![Page 17: Optimización de código en proyectos de Software Libre · HTTP Servers Flisol Santiago 2011 / Apache Benchmark – Live Test Archivo : 100 bytes NginX : v1.0 port = 2002](https://reader034.fdocuments.mx/reader034/viewer/2022052011/60274d7b10f12319d1306c13/html5/thumbnails/17.jpg)
Monkey NginX Cherokee Apache0
5000
10000
15000
20000
25000
30000
Requests/Second
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
Resultados: req/s
![Page 18: Optimización de código en proyectos de Software Libre · HTTP Servers Flisol Santiago 2011 / Apache Benchmark – Live Test Archivo : 100 bytes NginX : v1.0 port = 2002](https://reader034.fdocuments.mx/reader034/viewer/2022052011/60274d7b10f12319d1306c13/html5/thumbnails/18.jpg)
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
Y despues de...
![Page 19: Optimización de código en proyectos de Software Libre · HTTP Servers Flisol Santiago 2011 / Apache Benchmark – Live Test Archivo : 100 bytes NginX : v1.0 port = 2002](https://reader034.fdocuments.mx/reader034/viewer/2022052011/60274d7b10f12319d1306c13/html5/thumbnails/19.jpg)
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
Uso de memoria
Monkey NginX Cherokee0
200
400
600
800
1000
1200
1400
1600
Uso de Memoria
![Page 20: Optimización de código en proyectos de Software Libre · HTTP Servers Flisol Santiago 2011 / Apache Benchmark – Live Test Archivo : 100 bytes NginX : v1.0 port = 2002](https://reader034.fdocuments.mx/reader034/viewer/2022052011/60274d7b10f12319d1306c13/html5/thumbnails/20.jpg)
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
Monkey-project.com
![Page 21: Optimización de código en proyectos de Software Libre · HTTP Servers Flisol Santiago 2011 / Apache Benchmark – Live Test Archivo : 100 bytes NginX : v1.0 port = 2002](https://reader034.fdocuments.mx/reader034/viewer/2022052011/60274d7b10f12319d1306c13/html5/thumbnails/21.jpg)
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
Valgrind.org
![Page 22: Optimización de código en proyectos de Software Libre · HTTP Servers Flisol Santiago 2011 / Apache Benchmark – Live Test Archivo : 100 bytes NginX : v1.0 port = 2002](https://reader034.fdocuments.mx/reader034/viewer/2022052011/60274d7b10f12319d1306c13/html5/thumbnails/22.jpg)
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
Valgrind
- Massif : consumo de memoria - Callgrind: costo por llamada a funciones
![Page 23: Optimización de código en proyectos de Software Libre · HTTP Servers Flisol Santiago 2011 / Apache Benchmark – Live Test Archivo : 100 bytes NginX : v1.0 port = 2002](https://reader034.fdocuments.mx/reader034/viewer/2022052011/60274d7b10f12319d1306c13/html5/thumbnails/23.jpg)
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
Valgrind
Valgrind –tool=massif programa
![Page 24: Optimización de código en proyectos de Software Libre · HTTP Servers Flisol Santiago 2011 / Apache Benchmark – Live Test Archivo : 100 bytes NginX : v1.0 port = 2002](https://reader034.fdocuments.mx/reader034/viewer/2022052011/60274d7b10f12319d1306c13/html5/thumbnails/24.jpg)
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
Valgrindvalgrind –tool=callgrind programa
![Page 25: Optimización de código en proyectos de Software Libre · HTTP Servers Flisol Santiago 2011 / Apache Benchmark – Live Test Archivo : 100 bytes NginX : v1.0 port = 2002](https://reader034.fdocuments.mx/reader034/viewer/2022052011/60274d7b10f12319d1306c13/html5/thumbnails/25.jpg)
Flisol Santiago 2011 / http://edsiper.linuxchile.cl
¿ Como optimizar ?
- Uso eficiente de memoria- Reducir I/O a discos- Procesos/Hebras/CPU- Arquitectura