Introducción especial a los métodos de prueba y depuración relacionados con el servidor Apache

  

Muchas personas no entienden el verdadero rol del servidor Apache o sus beneficios, por lo general, rara vez lo tocan en la vida o en el trabajo, pero en realidad estos servidores son Muy útil, y las pruebas y depuración también son necesarias. Apache es el servidor web número uno que se ejecuta en el sistema operativo Linux. Se pueden usar muchos lugares pequeños para ajustar el rendimiento de Apache y reducir su impacto en los recursos del sistema. Una de ellas es ajustar el uso de la memoria. Por supuesto, puede requerir algún esfuerzo lograr este objetivo.

Por ejemplo, para determinar el uso de memoria de un subproceso httpd a través de ps, puede ingresar el siguiente comando:

# ps-Uapache-uapacheu

USERPID% CPU% MEMVSZRSSTTYSTATSTARTTIMECOMMOMOMAND

apache130670.05.314970454504? SOct071: 53 /usr /sbin /httpd-f /etc /httpd /conf /httpd.conf-DAPACHE2

...

La salida de arriba Muestra que un solo proceso httpd utiliza 50 MB de memoria RSS (tamaño del conjunto residente) (o memoria física no conmutada) y 149 MB de memoria VSZ (virtual). Por supuesto, esto depende en gran medida de la cantidad de módulos que cargue y ejecute en Apache. Esto no es de ninguna manera un número fijo. Como este número también contiene paquetes de bibliotecas compartidas, no es 100% preciso. Podemos pensar que la mitad del número de RSS es la cantidad de memoria realmente utilizada por el subproceso httpd, que puede ser un poco conservador, pero está muy cerca de nuestro propósito.

En este artículo, asumimos que cada proceso httpd utiliza 27MB de memoria. Luego, debe determinar la cantidad de memoria que puede utilizar httpd. Dependiendo de los otros procesos que se ejecutan en la máquina, es posible que desee requerir el 50% de la memoria física para Apache. En un sistema con 1 GB de RAM, 512 MB de memoria se pueden dividir en múltiples 27 MB de memoria, que son aproximadamente 19 memorias httpd simultáneas. Algunas personas insisten en que cada subproceso httpd "real" usa aproximadamente 5 MB de memoria, por lo que en teoría puede dividir 512 MB de memoria en 102 procesos simultáneos para uso de Apache (recuerde, a menos que su sitio Se requiere un tráfico extremadamente grande, de lo contrario esta situación es muy rara).

De forma predeterminada, Apache asigna hasta 256 conexiones de clientes concurrentes, o 256 procesos (uno para cada solicitud). Con esta configuración, un sitio web con mucho tráfico se bloqueará en un instante (incluso si asume que cada proceso ocupa 5MB de memoria, requerirá 1.3GB de memoria para satisfacer el número solicitado). Si no se realiza ninguna otra acción, el sistema intentará utilizar el espacio de intercambio a través del disco duro para manejar las tareas que no puede realizar en la memoria física.

Otros elementos que se pueden ajustar incluyen KeepAlive, KeepAliveTimeout y MaxKeepAliveRequests. Las configuraciones recomendadas que se pueden colocar en el archivo httpd.conf son:

ServerLimit128MaxClients128KeepAliveOnKeepAliveTimeout2MaxKeepAliveRequests100

Al reducir KeepAliveTimeout de 15 segundos a 2 segundos, se puede reducir el consumo de MaxClients. Más. Al reducir la cantidad de segundos que el proceso sobrevive, puede permitir más conexiones en la misma cantidad de tiempo.

Por supuesto, si no hay una prueba real detrás de la espalda, los números no tienen sentido, y ahí es donde está el rol de ab. Use ab para ajustar el archivo de configuración de Apache (MaxClients es igual a 256, ServerLimit es igual a 256, KeepAliveTimeout es igual a 15) para que pueda satisfacer 1000 solicitudes (100 solicitudes consecutivas para generación simultánea).
(Asegúrese de tener un terminal abierto en el servidor para observar la carga del sistema al realizar la prueba.)

$ ab-n1000-c100-k Ahora cambie la configuración del servidor anterior a una configuración más conservadora, reinicie Apache, intente probar de nuevo (siempre desde una computadora remota, no desde la máquina).

En las pruebas aquí, diferentes configuraciones causaron que el tiempo de ejecución duplicara el tiempo (27.8s y 16.8s, respectivamente), pero la carga promedio fue de 0.03 y 0.30. Esto puede hacer que su sitio sea un poco más lento, pero asegurará que no se bloquee bajo una carga alta. También tenga en cuenta que deberá realizar varias pruebas para obtener un promedio.

Usar ab es una excelente manera de probar la configuración de Apache y debe usarse cada vez que realice un cambio que afecte el rendimiento.

Le presentamos los métodos de prueba y depuración. Espero que todos puedan probarlo y que haya mucho conocimiento sobre el servidor. Puede encontrarlo cuando pueda, y espero que le sirva de ayuda.

Copyright © Conocimiento de Windows All Rights Reserved