En la configuración por defecto httpd se inicia un proceso primario generalmente de propiedad root que se une al puerto 80 (puerto < 1024), abre los archivos de registro y genera procesos hijos. El proceso hijo(s) de servir las peticiones http. Dependiendo del número de solicitudes y el nivel de concurrencia que se añaden de forma dinámica y en libertad. Es completamente normal tener varios procesos httpd en la lista de procesos.
Usted puede ajustar por medio de la modificación de diversos aspectos de httpd.
Leer más con una explicación y pros y contras:
El número de posibles procesos hijo de apache instalado por brew (actualmente Apache/2.4.43; Servidor de MPM: prefork) puede ser administrado en el Suplementario de configuración capítulo de el archivo de configuración. El elemento relevante es el Servidor de gestión de la piscina (MPM específicas) parte. El número de procesos hijo puede ser determinado en su archivo de configuración en el MPM Prefork sección:
-
Modificar el Servidor de gestión de la piscina (MPM específicas) (~línea 488 de /usr/local/etc/httpd/httpd.conf) de
# Server-pool management (MPM specific)
#Include /usr/local/etc/httpd/extra/httpd-mpm.conf
a
# Server-pool management (MPM specific)
Include /usr/local/etc/httpd/extra/httpd-mpm.conf
-
Modificar el MPM prefork config (a partir de la línea 21 de /usr/local/etc/httpd/extra/httpd-mpm.conf)
el valor predeterminado
# 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
# MaxRequestWorkers: maximum number of server processes allowed to start
# MaxConnectionsPerChild: maximum number of connections a server process serves
# before terminating
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxRequestWorkers 250
MaxConnectionsPerChild 0
</IfModule>
Proceso de la lista:
por ejemplo,
# 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
# MaxRequestWorkers: maximum number of server processes allowed to start
# MaxConnectionsPerChild: maximum number of connections a server process serves
# before terminating
<IfModule mpm_prefork_module>
StartServers 1
MinSpareServers 1
MaxSpareServers 1
MaxRequestWorkers 250
MaxConnectionsPerChild 0
</IfModule>
Proceso de la lista:
-
Reiniciar apache:
sudo apachectl -k restart
Speedtest (con ab -c 100 -n 1000 http://localhost:8080/index.html
):
por defecto prefork MPM config (StartServers/MinSpareServers/MaxSpareServers 5/5/10):
Server Software: Apache/2.4.43
Server Hostname: localhost
Server Port: 8080
Document Path: /index.html
Document Length: 45 bytes
Concurrency Level: 100
Time taken for tests: 1.075 seconds
Complete requests: 1000
Failed requests: 0
Total transferred: 289000 bytes
HTML transferred: 45000 bytes
Requests per second: 929.81 [#/sec] (mean)
Time per request: 107.549 [ms] (mean)
Time per request: 1.075 [ms] (mean, across all concurrent requests)
Transfer rate: 262.42 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 3 5.7 1 50
Processing: 3 103 68.3 82 310
Waiting: 2 101 67.1 81 309
Total: 10 106 69.4 83 317
Percentage of the requests served within a certain time (ms)
50% 83
66% 116
75% 150
80% 180
90% 216
95% 225
98% 260
99% 307
100% 317 (longest request)
modificado prefork MPM config (StartServers/MinSpareServers/MaxSpareServers 1/1/1):
Server Software: Apache/2.4.43
Server Hostname: localhost
Server Port: 8080
Document Path: /index.html
Document Length: 45 bytes
Concurrency Level: 100
Time taken for tests: 1.325 seconds
Complete requests: 1000
Failed requests: 0
Total transferred: 289000 bytes
HTML transferred: 45000 bytes
Requests per second: 754.55 [#/sec] (mean)
Time per request: 132.529 [ms] (mean)
Time per request: 1.325 [ms] (mean, across all concurrent requests)
Transfer rate: 212.96 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 4 8.9 1 55
Processing: 10 125 56.4 116 231
Waiting: 1 124 56.2 116 231
Total: 20 129 53.1 119 232
Percentage of the requests served within a certain time (ms)
50% 119
66% 136
75% 170
80% 186
90% 214
95% 221
98% 229
99% 231
100% 232 (longest request)
Esto no funciona para todos los apaches. No consigo que esto funcione con, por ejemplo, MAMP/MAMP Pro apache!