comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Optimizando al maximo Apache

  • 2 Respuestas
  • 2357 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5395
  • Actividad:
    36.67%
  • Reputación 31
  • ANTRAX
    • Ver Perfil
    • Underc0de
    • Email
  • Skype: underc0de.org
  • Twitter: @Underc0de
« en: Diciembre 11, 2014, 08:02:03 am »

Esta es una recopilación de configuraciones para mejorar el rendimiento de sus servidores Apache

No tienes permisos para ver links. Registrate o Entra con tu cuenta:
Ésta es una de las directivas más importantes, pues determina el número máximo de peticiones simultáneas que Apache puede atender. La idea es no permitir más conexiones de las que se pueden atender, para evitar usar swap, lo cual disminuye en mucho el rendimiento global. Las peticiones que no se puedan atender se pondrán en cola, según el valor de la directiva ListenBacklog. Se explica cómo se calcula éste número (de forma aproximada) en la documentación oficial, pero se entiende mejor de la fórmula de devside.net:

Código: Text
  1. MaxClients ≈ (RAM - size_all_other_processes)/(size_apache_process)


RAM: se puede usar "free -m" para ver la ram total en MB, o cat /proc/meminfo, entre otras.

size_apache_process: Se podrá calcular el tamaño de un proceso httpd con "ps -ylC httpd --sort:rss", el cual mostrará todos los procesos httpd en ejecución, de menor a mayor tamaño, en bytes, para la columna RSS (Resident Set Size: "la memoria no-swap que ha usado, en KB" ). Se podrá ver el tamaño mayor (dividido entre 1024 para tenerlo en MB) como "size_apache_process", o siendo menos severos, usa la siguiente fórmula, la cual calcula la media de los procesos actuales de Apache, ya en MB:

Código: Text
  1. ps -ylC httpd --sort:rss | awk '{SUM += $8; I += 1} END {print SUM/I/1024}'


size_all_other_processes: Siguiendo la regla anterior, se podrá ver el uso de memoria por los procesos que no sean de Apache, con la fórmula descrita a continuación, la cual ya devolverá el resultado en MB:

Código: Text
  1. ps -N -ylC httpd --sort:rss | awk '{SUM += $8} END {print SUM/1024}'


Así por ejemplo:

Código: Text
  1. free -m = 999MB (Mem total)
  2. ps -ylC httpd --sort:rss | awk '{SUM += $8; I += 1} END {print SUM/I/1024}' = 20.5458 (de 10880 a 34084)
  3. ps -N -ylC httpd --sort:rss | awk '{SUM += $8} END {print SUM/1024}' = 343.441
  4. Max_Clients = (999 - 343.441) / 20.5458 = 31,9 => 31 (aproximado)


No tienes permisos para ver links. Registrate o Entra con tu cuenta:
Aquí se debe especificar un listado de páginas que resolverán como índices, indicando como primera opción la opción más probable. Por ejemplo, en un servidor PHP donde el index suela ser un archivo del estilo index.php especificaremos:

Código: Text
  1. DirectoryIndex index.php index.html


De esta manera, se aceptarán archivos llamados index.php e index.html como archivos que se mostrarán cuando se hace una petición a un dominio sin indicar el fichero que se quiere ver (que es lo habitual).

No tienes permisos para ver links. Registrate o Entra con tu cuenta:
Para un mayor rendimiento, deberíamos indicar de forma global, y en todos los virtualhost, "AllowOverride None", para evitar que a cada petición, busque si existe o no un fichero .htaccess en los directorios de la petición (Ej. para un DocumentRoot /var/www, buscará un.htacess en /, otro en /var y otro en /var/www). Por contra, no podremos usar archivos .htaccess en aquellos virtualhost que hayamos configurado así.

No tienes permisos para ver links. Registrate o Entra con tu cuenta:
Para evitar llamadas extra en cada petición, se deberá configurar para cada "Directory" de cada VirtualHost, lo siguiente:

Código: Text
  1. 'Options +FollowSymLinks -SymLinksIfOwnerMatch'


No tienes permisos para ver links. Registrate o Entra con tu cuenta:
Esta directiva ya viene en las versiones superiores a Apache 1.3, en Off por defecto, y previene así aumentar la latencia de las peticiones HTTP por culpa de la resolución DNS. Si no lo está ya, se recomienda ponerla a Off.
Módulos de Multi-Procesamiento (MPM)

Apache "viene con una serie de Módulos de Multi-Procesamiento que son los responsables de conectar con los puertos de red de la máquina, aceptar las peticiones, y generar los procesos hijo que se encargan de servirlas".
Básicamente:

Worker: usa múltiples procesos hijos, con múltiples threads cada uno. Cada thread gestiona una conexión a la vez. Generalmente, se recomienda en entornos de alto tráfico.
Prefork: usa múltiples procesos hijos, con un único thread cada uno. Cada proceso gestiona una conexión a la vez. Puede trabajar con módulos de terceros.

AQUI más información sobre estos MPM. Por cierto, se puede ver con qué MPM estamos trabajando, ejecutando la siguiente línea, lo cual nos devolverá, entre otros, prefork.c o worker.c:

Código: Text
  1. /usr/sbin/apachectl -l


APC
Si se quiere mejorar el rendimiento de un servidor web, PHP, una muy buena opción es instalarle APC, una caché que optimiza el código PHP intermedio y mejora notablemente el rendimiento del servidor. Sin duda, una utilidad que debería estar instalada en prácticamente cualquier servidor Apache/PHP, ya que tiene una instalación muy sencilla (se encuentra en yum) y efectos notables en el rendimiento.


Desconectado kid_goth

  • *
  • Underc0der
  • Mensajes: 201
  • Actividad:
    0%
  • Reputación 3
  • Tu conocimiento se limita cuando dices NO PUEDO...
    • Ver Perfil
    • DC Projects
    • Email
« Respuesta #1 en: Diciembre 12, 2014, 07:09:46 pm »
Nice, para marcadores... me gusta mucho el (m)apache aunque siempre me dicen que nginx es "mucho mejor" y mas configurable respecto a rendimiento y esas cosas... será revisar esto, ponerlo a prueba y alguuun dia probar el nginx xD

Saludos
No tienes permisos para ver links. Registrate o Entra con tu cuenta

Acepta con humildad y aprecio que en la vida la muerte es inevitable y amarás ésta, adorando la muerte

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5395
  • Actividad:
    36.67%
  • Reputación 31
  • ANTRAX
    • Ver Perfil
    • Underc0de
    • Email
  • Skype: underc0de.org
  • Twitter: @Underc0de
« Respuesta #2 en: Diciembre 12, 2014, 07:59:53 pm »
Pronto escribiré algun articulo sobre Nginx.
En underc0de de hecho lo usamos por recomendación de gn0m3 y la diferencia es muy notable!

Saludos!
ANTRAX


 

¿Te gustó el post? COMPARTILO!



Cómo instalar y configurar ModSecurity en Apache sobre servidores Debian

Iniciado por d0r127

Respuestas: 2
Vistas: 2691
Último mensaje Mayo 04, 2017, 12:43:34 pm
por fran_
Instalar mod_security para Apache en Linux 64 bits

Iniciado por BlackDead

Respuestas: 0
Vistas: 1424
Último mensaje Agosto 06, 2013, 11:47:02 pm
por BlackDead
Bug importante en el apache de la ultima versión de CentOS.

Iniciado por july

Respuestas: 0
Vistas: 1513
Último mensaje Noviembre 20, 2012, 12:30:39 pm
por july
Instalación y Configuración de ModSSL, OpenSSL y PHP en Apache

Iniciado por Adastra

Respuestas: 5
Vistas: 3480
Último mensaje Noviembre 26, 2012, 08:13:28 am
por Adastra
Seguridad en CentOS (Apache) (Mod_qos)

Iniciado por ZanGetsu

Respuestas: 3
Vistas: 2705
Último mensaje Junio 24, 2013, 07:18:46 pm
por @NetFcruz