Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Apache (http://www.forosdelweb.com/f58/)
-   -   Directivas rendimiento apache windows. (http://www.forosdelweb.com/f58/directivas-rendimiento-apache-windows-861948/)

Alfon 22/11/2010 04:03

Directivas rendimiento apache windows.
 
Hola a todos,

Estoy tratando de afinar un poco un httpd.conf para apche 2.2 windows.

al intentar introducir las directivas:

StartServers 40
MinSpareServers 30
MaxSpareServers 50
MaxClients 240
MaxRequestsPerChild 1000

me dá un error y no inicia apache.

La pregunta es:

- ¿ deben ir estas directicas en algún tag o if module, etc ?
- ¿ es que no pueden ir así tal cual ?
- ¿ me falta algo ?

saludos y gracias,

David 23/11/2010 06:23

Respuesta: Directivas rendimiento apache windows.
 
¿Cuál es el error que produce? ¿El servidor está instalado para trabajar como worker o prefork?

Alfon 23/11/2010 11:48

Respuesta: Directivas rendimiento apache windows.
 
Hola David, gracias por responder. Se trata de una instalación XAMPP para Windows. Más o menos está solucionado. Pero bueno, yo de servidores web no estoy muy puesto y no sé si lo estoy haciendo bien y además, tengo algunas otras dudas. La primera sería relacionada con tu respuesta....:

¿ Cómo puedo saber si está en Worker o Prefork ?.

Saludos y gracias,

David 23/11/2010 12:23

Respuesta: Directivas rendimiento apache windows.
 
En el listado de módulos cargados podrás verlo.

Aunque, en Windows, lo usual es que se cargue el módulo mpm_winnt.
En ese caso, lo que te estarían causando problemas son las directivas MinSpareServers y MaxSpareServers que son específicas del módulo prefork.

Alfon 24/11/2010 03:05

Respuesta: Directivas rendimiento apache windows.
 
muchas gracias David por contestar.

Vamos a ver. Cuando y "le doy" a apache -l, me sale que tengo, entre otros:
Compiled in modules:
mpm.winnt.c
Cuando miro en httpd.conf los modulos cargados y no cargados, veo que no existe ninguno relativo a *mpm*. Pero si existe una directiva tal como esta:
Include conf/extra/httpd-mpm.conf
Vamos a ver que hay ahí:

Código:

#
# Server-Pool Management (MPM specific)
#

#
# PidFile: The file in which the server should record its process
# identification number when it starts.
#
# Note that this is the default PidFile for most MPMs.
#
<IfModule !mpm_netware_module>
    PidFile C:/xampp/apache/logs/httpd.pid
</IfModule>

#
# The accept serialization lock file MUST BE STORED ON A LOCAL DISK.
#
<IfModule !mpm_winnt_module>
<IfModule !mpm_netware_module>
LockFile @rel_logfiledir@/accept.lock
</IfModule>
</IfModule>

#
# Only one of the below sections will be relevant on your
# installed httpd.  Use "apachectl -l" to find out the
# active mpm.
#

# 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
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers      5
    MaxSpareServers      10
    MaxClients          150
    MaxRequestsPerChild  0
</IfModule>

# worker MPM
# StartServers: initial number of server processes to start
# MaxClients: maximum number of simultaneous client connections
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_worker_module>
    StartServers          2
    MaxClients          150
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadsPerChild      25
    MaxRequestsPerChild  0
</IfModule>

# WinNT MPM
# ThreadsPerChild: constant number of worker threads in the server process
# MaxRequestsPerChild: maximum  number of requests a server process serves
<IfModule mpm_winnt_module>
    ThreadsPerChild    250
    MaxRequestsPerChild  0
</IfModule>

# BeOS MPM
# StartThreads: how many threads do we initially spawn?
# MaxClients:  max number of threads we can have (1 thread == 1 client)
# MaxRequestsPerThread: maximum number of requests each thread will process
<IfModule mpm_beos_module>
    StartThreads            10
    MaxClients              50
    MaxRequestsPerThread 10000
</IfModule>

# NetWare MPM
# ThreadStackSize: Stack size allocated for each worker thread
# StartThreads: Number of worker threads launched at server startup
# MinSpareThreads: Minimum number of idle threads, to handle request spikes
# MaxSpareThreads: Maximum number of idle threads
# MaxThreads: Maximum number of worker threads alive at the same time
# MaxRequestsPerChild: Maximum  number of requests a thread serves. It is
#                      recommended that the default value of 0 be set for this
#                      directive on NetWare.  This will allow the thread to
#                      continue to service requests indefinitely.                         
<IfModule mpm_netware_module>
    ThreadStackSize      65536
    StartThreads          250
    MinSpareThreads        25
    MaxSpareThreads        250
    MaxThreads            1000
    MaxRequestsPerChild      0
    MaxMemFree            100
</IfModule>

# OS/2 MPM
# StartServers: Number of server processes to maintain
# MinSpareThreads: Minimum number of idle threads per process,
#                  to handle request spikes
# MaxSpareThreads: Maximum number of idle threads per process
# MaxRequestsPerChild: Maximum number of connections per server process
<IfModule mpm_mpmt_os2_module>
    StartServers          2
    MinSpareThreads        5
    MaxSpareThreads      10
    MaxRequestsPerChild    0
</IfModule>


Entonces, debo entender que el módulo mpm.. lo que sea, está ya incluído y compilado (mpm.winnt.c que pongo al principio). Si esto es así, entonces solo puedo cambiar donde pone en el code anterior la parte que dice ??:
# WinNT MPM
# ThreadsPerChild: constant number of worker threads in the server process
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_winnt_module>
ThreadsPerChild 250
MaxRequestsPerChild 0
</IfModule>
yo ahora mismo tengo en mi httpd.conf y respecto a este tema, lo siguiente:
<IfModule mpm_prefork_module>
StartServers 10
MinSpareServers 7
MaxSpareServers 15
MaxClients 150
MaxRequestsPerChild 1000
</IfModule>
Que supongo, ademá,s y a tenor de lo visto hasta ahora, no está sirviendo de nada.


Saludos,

David 24/11/2010 19:25

Respuesta: Directivas rendimiento apache windows.
 
Efectivamente, al no estar cargado el módulo prefork esas directivas no se aplican.

Si, en efecto, el módulo mpm_winnt es el que está cargado; como mencionas, las directivas que serán tomadas como válidas son las que se encuentren en ese bloque ifModule.

Alfon 25/11/2010 01:35

Respuesta: Directivas rendimiento apache windows.
 
Gracias David.

Entonces y para resumir, el Include conf/extra/httpd-mpm.conf que apunta al archivo httpd-mpm.conf es lo que tengo que usar para modificar las directivas de rendimiento, que, además deben hacerse solo en:
<IfModule mpm_winnt_module>
ThreadsPerChild 250
MaxRequestsPerChild 0
</IfModule>

Arriba, solo vemos dos diretivas, a mi me gustaría dejarlo así David. Eso es posible:

<IfModule mpm_winnt_module>
StartServers 10
MinSpareServers 7
MaxSpareServers 15
MaxClients 150
MaxRequestsPerChild 1000
</IfModule>
Si no es posible, ¿ hay algo que se puedda hacer ?

Saludos y gracias,

David 25/11/2010 04:52

Respuesta: Directivas rendimiento apache windows.
 
Es que las directivas MinSpareServers y MaxSpareServers no aplican a ese MPM y a su forma de trabajo.

Aquí puedes ver el listado de directivas aplicables:
http://httpd.apache.org/docs/2.0/es/mod/mpm_winnt.html

Alfon 25/11/2010 06:53

Respuesta: Directivas rendimiento apache windows.
 
Me lo imaginaba. Y entonces no se puede implementar el mpm Prefork en apache apra windows ?.

David 25/11/2010 08:22

Respuesta: Directivas rendimiento apache windows.
 
Supongo que tal vez se podría compilar Apache con ese módulo, pero no lo he intentado y no estoy seguro que sea posible.

De hecho, el modo prefork no ofrece ninguna ventaja en Windows.
Probablemente sea más eficiente utilizar el MPM por defecto para Windows ya que utiliza características propias del SO para optimizar.

También hay información al respecto aquí:
http://httpd.apache.org/docs/2.0/mpm.html

Alfon 25/11/2010 09:44

Respuesta: Directivas rendimiento apache windows.
 
Gracias David. Me ha quedado todo muy claro. ¿ Dónde hay que enviar el jamón ?


La zona horaria es GMT -6. Ahora son las 17:14.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2025, Jelsoft Enterprises Ltd.