anotaciones que no quiero recordar, ni olvidar

me

Optimizar Apache

Ratio: 0 / 5

Inicio inactivoInicio inactivoInicio inactivoInicio inactivoInicio inactivo
 

Vamos a ver en un caso especifico que configuraciones de apache nos aportan usabilidad y aprovechamiento de recursos. En otras palabras vamos a tunear apache.

Lo que vamos ha hacer es muy sencillo, y es que en realidad una vez más las configuraciones predeterminadas que llevan los servidores no han cambiado desde hace años y lo que si ha cambiado a sido tanto el hardware como las aplicaciones web.

Como ya debes saber la configuración de Apache afecta a php y demás servidores que corren en él, pero para optimizar mysql pasate por este otro artículo, es también importante: Optimizar MySQL

Insisto una vez más en que según el uso que se le vaya a dar al servidor debemos configurarlo de una manera o de otra.
Nosotros para este caso lo tenemos como podréis ver más abajo.
Destacar algunas cosas, como que si nuestro servidor estuviese destinado al envío de ficheros muy pesados, deberíamos aumentar el timeout. O por ejemplo nuestro KeepAliveTimeout tiene un valor de 5 segundos por que consideramos que es suficiente el tiempo entre conexiones persistentes, así no se ha de esperar el triple que es lo habitual.
En relación a mpm_prefork_module y mpm_worker_module hemos aumentando los valores, haciendo así que apache tenga más procesos en el procesador, tanto mínimos como máximos. No nos importa que consuma más memoria, nos interesa que apache pueda usar más procesos en los 4 cores que tiene el procesador de ésta máquina.

Llegamos al momento de las gráficas, dos imágenes con dos gráficas cada una, una de CPU y otra de RAM. Las dos imágenes son de la misma franja horaria, de casi todo el día laboral, de 8 a 21 horas. La de la izquierda es el día antes de optimizar y a la derecha optimizado.
En AZUL la carga total del sistema.
Como puede verse inicialmente se consumía menos memoria: sobre de 800 MB antes y 1100 MB después, pero los picos del procesador eran antes más altos, tanto los picos altos como los picos medios.


ANTES DE OPTIMIZAR

OPTIMIZADO

Y ahora una vista general de la semana.
Como podemos en la primera línea roja vertical que he añadido a la gráfica, conforme se va llenando la RAM se va requiriendo menos procesador, observemos el pico de caída de la CPU tras aumentar la RAM. En la segunda línea roja vertical es a la inversa.

Ahí va nuestro fichero de configuración, en este caso dejo la explicación que se encuentra antes de cada parámetro para que pueda entenderse mejor y lo acoples a tus necesidades:

# Timeout: The number of seconds before receives and sends time out.
Timeout 300

# KeepAlive: Whether or not to allow persistent connections (more than one request per connection). Set to "Off" to deactivate.
KeepAlive On

# MaxKeepAliveRequests: The maximum number of requests to allow during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
MaxKeepAliveRequests 10000

# KeepAliveTimeout: Number of seconds to wait for the next request from the same client on the same connection.
KeepAliveTimeout 5

# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves

StartServers        5
MinSpareServers    5
MaxSpareServers    30
MaxClients        250
MaxRequestsPerChild   1000


# worker MPM
# StartServers: initial number of server processes to start
# MaxClients: maximum number of simultaneous client connections
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestsPerChild: maximum number of requests a server process serves
#
#StartServers        5
#MaxClients        250
#MinSpareThreads    5
#MaxSpareThreads    30
#ThreadsPerChild    25
#MaxRequestsPerChild   1000
#