3 votos

Cómo dejar de múltiples httpd instancia en macOS Catalina

Yo no soy de experiencia con macOS todavía y necesita algo de ayuda para entender por qué hay varias instancias de httpd que se ejecuta en mi macOS Catalina 10.15.4

enter image description here

Pregunta:

Si no es necesario, a continuación, ¿cómo puedo dejar de todo, pero el único el que estoy utilizando para el desarrollo?

Actualizado

Con el resultado de App Processes - Hierarchically

enter image description here

Ubicación Del Apache

Aquí está mi apache ubicación

➜  ~ which httpd
/usr/local/bin/httpd

ruta de los archivos de apache

/usr/local/etc/httpd/httpd.conf
/usr/local/etc/httpd/extra/httpd-vhosts.conf

7voto

klanomath Puntos 19587

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:

  1. 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
    
  2. 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:
    enter image description here

    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:
    enter image description here

  3. 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!

2voto

user3439894 Puntos 5883

En la Terminal, he intentado ejecutar:

sudo apachectl stop

Después de intentar detener httpd, a continuación, reinicie, y ver cómo pueden las ocurrencias que tiene.

Si en macOS Catalina, el uso de la instalación por defecto de Apache, si me quedo sudo apachectl start , seguido por pgrep httpd se muestran múltiples ocurrencias de httpd, a veces solo y otras veces cuatro apariciones.

En realidad, nunca se dio cuenta porque en mi sistema httpd no se muestra en el Monitor de Actividad y por qué usé pgrep httpd de la Terminal. (Actualización: yo tenía un Monitor de Actividad, mostrando sólo Mis Procesos y el cambio a Todos los Procesos httpd muestra ahora.)

No sé por qué hay varias apariciones de httpd, sin embargo parece normal.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X