Cómo optimizar y optimizar el rendimiento de Apache |

Asegúrese de tener suficiente RAM para aumentar el rendimiento del servidor web Apache, especialmente durante el almacenamiento en caché. Cuando la memoria está llena, las solicitudes se redirigen al espacio de intercambio, lo que aumenta la latencia. Esto significa que los usuarios tendrán que volver a cargar su solicitud, lo que aumenta aún más la carga. Para solucionar este problema, es decir, limitar el número de procesos subordinados creados por el servidor web Apache, desde los cuales se redirigen a la memoria de intercambio, se debe definir el MaxRequestWorkers. Para obtener el mejor valor para esto, haga lo siguiente:
Para aumentar el rendimiento de Apache, asegúrese de tener una CPU más rápida, una tarjeta de red más rápida y discos duros más rápidos.
Aumente el tamaño del búfer de escritura aumentando el valor en los dos archivos:
/proc/sys/net/core/wmem_max /proc/sys/net/core/wmem_default
Si el servidor web Apache está manejando cargas pesadas, se recomienda aumentar el número máximo de archivos abiertos permitidos aumentando el valor en el archivo:
/proc/sys/fs/file-max
Luego ejecute el siguiente comando:
$ ulimit -H -n 4096
Activar AllowOverride
Hace que Apache intente abrir .htaccess
cada vez que se realiza una solicitud. Esto reduce significativamente el rendimiento del servidor web Apache. Usa la opción para arreglar esto AllowOverride None
Como se muestra abajo:
DocumentRoot "/www/var/html" <Directory "https://hostadvice.com/"> AllowOverride None </Directory>
Cuándo HostnameLookups
está activado, es decir, girado ON
aumenta la latencia para cualquier solicitud que deba completarse después de la búsqueda de DNS. Hay dos soluciones para esto:
HostnameLookups off
MPM ayuda a Apache a vincularse a los puertos de red, turnándose para utilizar procesos e hilos secundarios para aceptar y procesar solicitudes. Hay 3 tipos diferentes de MPM, cada uno adecuado para diferentes necesidades.
Trabajadores: Utiliza varios procesos secundarios, cada uno con muchos subprocesos, mientras que cada subproceso maneja una conexión a la vez. Esto es adecuado para servidores con alto tráfico de datos porque requiere menos memoria que Prefork.
Evento: Similar al MPM de trabajador en términos de subprocesos, pero permite procesar más solicitudes a la vez al proporcionar algún procesamiento a los subprocesos de soporte. Esto ayuda a liberar memoria asignada a otros subprocesos. No apto para módulos no seguros para subprocesos como mod_php.
Defecto: Utiliza varios procesos secundarios, cada uno con un solo hilo. Cada proceso procesa una conexión a la vez. Es más rápido que un trabajador, pero ocupa más memoria. Adecuado para depurar aplicaciones con módulos no seguros para subprocesos como mod_php.
Ejecute el comando para verificar su versión de MPM
$ sudo httpd -V
Producción:
[linuxuser@centos7-apache ~]$ sudo httpd -V [sudo] password for linuxuser: Server version: Apache/2.4.6 (CentOS) Server built: Apr 20 2018 18:10:38 Server's Module Magic Number: 20120211:24 Server loaded: APR 1.4.8, APR-UTIL 1.5.2 Compiled using: APR 1.4.8, APR-UTIL 1.5.2 Architecture: 64-bit Server MPM: prefork threaded: no forked: yes (variable process count) Server compiled with.... -D APR_HAS_SENDFILE -D APR_HAS_MMAP -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) -D APR_USE_SYSVSEM_SERIALIZE -D APR_USE_PTHREAD_SERIALIZE -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT -D APR_HAS_OTHER_CHILD -D AP_HAVE_RELIABLE_PIPED_LOGS -D DYNAMIC_MODULE_LIMIT=256 -D HTTPD_ROOT="/etc/httpd" -D SUEXEC_BIN="/usr/sbin/suexec" -D DEFAULT_PIDLOG="/run/httpd/httpd.pid" -D DEFAULT_SCOREBOARD="logs/apache_runtime_status" -D DEFAULT_ERRORLOG="logs/error_log" -D AP_TYPES_CONFIG_FILE="conf/mime.types" -D SERVER_CONFIG_FILE="conf/httpd.conf"
El MPM actual es prefork. Si desea cambiarlo, edítelo de la siguiente manera:
Hacia Centos 7
$ sudo vim /etc/httpd/conf.modules.d/00-mpm.conf
Hacia Ubuntu 16/04
$ sudo vim /etc/apache2/mods-available/<mpm>.load
Dónde <mpm>
es mpm_prefork
, mpm_event
o mpm_worker
Algunos de los módulos que puede que no necesite en su servidor web incluyen, pero no se limitan a mod_mime
, mod_dir
, mod_php
, mod_perl
, mod_ruby
Esto ayuda a ahorrar la memoria RAM utilizada por el servidor web.
en el Centos 7, para desactivar o descargar un módulo, comentario fuera
en el Ubuntu 16.04 Para desactivar o descargar un módulo, ejecute el siguiente comando:
$ sudo a2dismod module_name
Cómo activar un módulo
$ sudo a2enmod module_name
Luego reinicie el servicio Apache.