Apache
Instalación
Pasos a seguir
[1] PREFIX hay que reemplazarlo por la ruta en la que se va a instalar
Apache. Si no especifica ningún valo...
Configuración básica
/etc/httpd/conf/httpd.conf
Apache
Mejora del rendimiento
Apache Tuning
1. Cargar sólo los módulos necesarios
2. Usar los módulos de multiprocessing apropiados
3. DNS lookup
4. Cam...
Apache Tuning
1. [Cargar sólo los módulos necesarios]
2. Usar los módulos de multiprocessing apropiados
3. DNS lookup
4. C...
1.Cargar solo modulos
necesarios
● apachectl -M -> Lista los módulos corriendo en
Apache
● a2dismod/a2enmod <nombre modulo...
Apache Tuning
1. Cargar sólo los módulos necesarios
2. [Usar los módulos de multiprocessing apropiados]
3. DNS lookup
4. C...
2. Usar los módulos de multiprocessing
apropiados
Cada proceso que genera varios
procesos hijos, estos son agrupados
y per...
Worker vs Prefork
● Más estable, ya que un error crítico
solo afectaría a una petición.
● Se pueden usar módulos / extensi...
Worker vs Prefork
Prefork en
● Un servidor bastante
poderoso
● Manejando casi solo
contenido generado desde
PHP.
● El cont...
Apache Tuning
1. Cargar sólo los módulos necesarios
2. Usar los módulos de multiprocessing apropiados
3. [DNS lookup]
4. C...
3. DNS lookup
Cada vez que hacemos una conexión
a un cliente,
Apache tiene que resolver el nombre
del cliente,
esto hace q...
Apache Tuning
1. Cargar sólo los módulos necesarios
2. Usar los módulos de multiprocessing apropiados
3. DNS lookup
4. [Ca...
i. MaxClients
+ Timeouts
- RAM
MaxClients = Total RAM dedicated to the web server / Max child process size
- Timeouts
+ RAM
ii. MinSpareServers, MaxSpareServers, y
StartServers
● Estos parámetros condicionarán el multiprocesamiento de Apache
● No...
iii.MaxRequestsPerChild y
ThreadsPerChild
ThreadsPerChild. MaxRequestsPerChild.
iv.KeepAlive y KeepAliveTimeout
● Varias peticiones sobre la misma conexión TCP
● Timeout: Tiempo de espera hasta cerrar l...
v.Prueba de rendimiento
<IfModule prefork.c>
StartServers
3
MinSpareServers
2
MaxSpareServers 3
MaxClients 15
MaxRequestsP...
ab -n 1000 -c 160
Apache Tuning
1. Cargar sólo los módulos necesarios
2. Usar los módulos de multiprocessing apropiados
3. DNS lookup
4. Cam...
5.Compresión HTTP y caching
+ Ancho de banda
+ Recursos necesarios
En apache se puede habilitar la compresión habilitando
...
Comparativa compresión
Apache Tuning
1. Cargar sólo los módulos necesarios
2. Usar los módulos de multiprocessing apropiados
3. DNS lookup
4. Cam...
6. Separar el contenido dinámico y el
estático
Podemos usar estas lineas en nuestras directivas de VirtualHost
RewriteEngi...
Referencias
[1] http://httpd.apache.org/docs/2.2/es/install.html
[2] http://bobcares.com/blog/configuring-apache-for-maxim...
Upcoming SlideShare
Loading in …5
×

Apache, getting the best version

300 views

Published on

A introduction about apache, how can up performance of your Apache making some little things. You can make some changes about parameters and configurations, and get two time the performance your server.

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

  • Be the first to like this

No Downloads
Views
Total views
300
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • HTTP en su última versión, proporciona la posibilidad de establecer sesiones de mayor duración de manera que se permiten múltiples peticiones sobre la misma conexión TCP.
    En según qué entornos interesará permitirlas, pero en otros entornos con muchas peticiones, esto incrementará el número de conexiones simultáneas impactando en el rendimiento, ya que las conexiones permanecerán abiertas más tiempo.
  • Apache, getting the best version

    1. 1. Apache Instalación
    2. 2. Pasos a seguir [1] PREFIX hay que reemplazarlo por la ruta en la que se va a instalar Apache. Si no especifica ningún valor en PREFIX, el valor por defecto que se toma es /usr/local/apache2
    3. 3. Configuración básica /etc/httpd/conf/httpd.conf
    4. 4. Apache Mejora del rendimiento
    5. 5. Apache Tuning 1. Cargar sólo los módulos necesarios 2. Usar los módulos de multiprocessing apropiados 3. DNS lookup 4. Cambiando parametros i. MaxClients ii. MinSpareServers, MaxSpareServers, y StartServers iii. MaxRequestsPerChild iv. KeepAlive y KeepAliveTimeout v. Prueba de rendimiento 5. Compresión HTTP y caching 6. Separar el contenido dinámico y el estático
    6. 6. Apache Tuning 1. [Cargar sólo los módulos necesarios] 2. Usar los módulos de multiprocessing apropiados 3. DNS lookup 4. Cambiando parametros i. MaxClients ii. MinSpareServers, MaxSpareServers, y StartServers iii. MaxRequestsPerChild iv. KeepAlive y KeepAliveTimeout v. Prueba de rendimiento 5. Compresión HTTP y caching 6. Separar el contenido dinámico y el estático
    7. 7. 1.Cargar solo modulos necesarios ● apachectl -M -> Lista los módulos corriendo en Apache ● a2dismod/a2enmod <nombre modulo> -> Desactiva/activa el módulo en cuestión ● apachectl configtest -> Testea que el módulo desactivado no ha afectado a la conf de Apache antes de relanzarlo. Algunos de los módulos que suelen desactivarse [3]
    8. 8. Apache Tuning 1. Cargar sólo los módulos necesarios 2. [Usar los módulos de multiprocessing apropiados] 3. DNS lookup 4. Cambiando parametros i. MaxClients ii. MinSpareServers, MaxSpareServers, y StartServers iii. MaxRequestsPerChild iv. KeepAlive y KeepAliveTimeout v. Prueba de rendimiento 5. Compresión HTTP y caching 6. Separar el contenido dinámico y el estático
    9. 9. 2. Usar los módulos de multiprocessing apropiados Cada proceso que genera varios procesos hijos, estos son agrupados y permiten usar la misma conexión. Apache inicia varios subprocesos y cada petición es atendida por uno de estos.
    10. 10. Worker vs Prefork ● Más estable, ya que un error crítico solo afectaría a una petición. ● Se pueden usar módulos / extensiones que no sean Thread-Safe. ● Requiere más recursos para atender peticiones simultáneas ● Favorece el uso intensivo de PHP. Los aceleradores de PHP no son Thread- Safe, pueden usarse. ● Prefork es la configuración predeterminada en la mayoría de instalaciones. ● Un fallo crítico afecta a varias peticiones. ● Requiere que todos los módulos/extensiones que se vayan a usar sean Thread-Safe. ● Menos recursos para atender peticiones simultáneas. ● No se pueden usar aceleradores de PHP. ● Worker solo está disponible desde Apache 2.x .
    11. 11. Worker vs Prefork Prefork en ● Un servidor bastante poderoso ● Manejando casi solo contenido generado desde PHP. ● El contenido estático se sirve desde otro servidor. Worker en ● Un servidor sencillo ● Más que todo contenido estático. ● La mayoría del contenido generado con PHP queda almacenado en cachés.
    12. 12. Apache Tuning 1. Cargar sólo los módulos necesarios 2. Usar los módulos de multiprocessing apropiados 3. [DNS lookup] 4. Cambiando parametros i. MaxClients ii. MinSpareServers, MaxSpareServers, y StartServers iii. MaxRequestsPerChild iv. KeepAlive y KeepAliveTimeout v. Prueba de rendimiento 5. Compresión HTTP y caching 6. Separar el contenido dinámico y el estático
    13. 13. 3. DNS lookup Cada vez que hacemos una conexión a un cliente, Apache tiene que resolver el nombre del cliente, esto hace que tenga que hacer una petición al DNS. Apache tiene la posibilidad de ● crear una lista interna de hosts-ips ● logresolve
    14. 14. Apache Tuning 1. Cargar sólo los módulos necesarios 2. Usar los módulos de multiprocessing apropiados 3. DNS lookup 4. [Cambiando parametros] i. MaxClients ii. MinSpareServers, MaxSpareServers, y StartServers iii. MaxRequestsPerChild iv. KeepAlive y KeepAliveTimeout v. Prueba de rendimiento 5. Compresión HTTP y caching 6. Separar el contenido dinámico y el estático
    15. 15. i. MaxClients + Timeouts - RAM MaxClients = Total RAM dedicated to the web server / Max child process size - Timeouts + RAM
    16. 16. ii. MinSpareServers, MaxSpareServers, y StartServers ● Estos parámetros condicionarán el multiprocesamiento de Apache ● No dejar muchos procesos en espera si la carga del servidor es baja.
    17. 17. iii.MaxRequestsPerChild y ThreadsPerChild ThreadsPerChild. MaxRequestsPerChild.
    18. 18. iv.KeepAlive y KeepAliveTimeout ● Varias peticiones sobre la misma conexión TCP ● Timeout: Tiempo de espera hasta cerrar la conexión ● Destaca con HTML con muchas imágenes
    19. 19. v.Prueba de rendimiento <IfModule prefork.c> StartServers 3 MinSpareServers 2 MaxSpareServers 3 MaxClients 15 MaxRequestsPerChild 5000 </IfModule> KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 2 ● Hemos usado prefork ya que vamos a servir contenido estático ● Al usar prefork, establecemos el MaxRequestPerChild
    20. 20. ab -n 1000 -c 160
    21. 21. Apache Tuning 1. Cargar sólo los módulos necesarios 2. Usar los módulos de multiprocessing apropiados 3. DNS lookup 4. Cambiando parametros i. MaxClients ii. MinSpareServers, MaxSpareServers, y StartServers iii. MaxRequestsPerChild iv. KeepAlive y KeepAliveTimeout v. Prueba de rendimiento 5. [Compresión HTTP y caching] 6. Separar el contenido dinámico y el estático
    22. 22. 5.Compresión HTTP y caching + Ancho de banda + Recursos necesarios En apache se puede habilitar la compresión habilitando el módulo mod_deflate. Para configurar estos valores usamos mod_expires y mod_headers.
    23. 23. Comparativa compresión
    24. 24. Apache Tuning 1. Cargar sólo los módulos necesarios 2. Usar los módulos de multiprocessing apropiados 3. DNS lookup 4. Cambiando parametros i. MaxClients ii. MinSpareServers, MaxSpareServers, y StartServers iii. MaxRequestsPerChild iv. KeepAlive y KeepAliveTimeout v. Prueba de rendimiento 5. Compresión HTTP y caching 6. [Separar el contenido dinámico y el estático]
    25. 25. 6. Separar el contenido dinámico y el estático Podemos usar estas lineas en nuestras directivas de VirtualHost RewriteEngine On RewriteRule “^/(.*).(jpg|jpeg|gif|png|swf|pdf|avi|mpeg|mpg|mp3)$” “http://www.yourwebsite.com/$1.$2″ [P] ProxyPassReverse / http://www.yourwebsite.com/ Esto lo podremos hacer mediante los módulos ● mod_proxy ● rewrite_module
    26. 26. Referencias [1] http://httpd.apache.org/docs/2.2/es/install.html [2] http://bobcares.com/blog/configuring-apache-for-maximum-performance/#COMPRS [3] http://diariolinux.com/2014/05/31/desactivando-modulos-innecesarios-en-apache/ [4] http://www.maestrosdelweb.com/editorial/entendiendo-los-modos-multiproceso-de-apache/ [5] http://httpd.apache.org/docs/2.2/programs/logresolve.html [6] http://old.zope.org/Members/ike/Apache2/osx/configure_html [7] https://drupal.org/node/215516 [8] http://www.websiteoptimization.com/speed//18/18-2t.html [9] http://httpd.apache.org/docs/2.2/mod/mod_proxy.html [10] http://www.developerfeed.com/how-proxy-static-content-apache-server

    ×