Limitar Numero de Threads en ejecución (parámetro) ¿? IMPORTANTE !

25/04/2007 - 12:06 por Miguel | Informe spam
Entorno Servidor
Windows Server 2003 Services Pack 1
42 procesadores Xeon 5130 2Ghz/4MB
2 discos 73Gb SAS 15000rpm
2 Gb 667Mhz (4x512Mb)
PSU redundante

Software
IIS 6.0
Framework 2.0


Desarrollo
Web Services en C# cuya finalidad es ejecutar un aplicativo externo via
comando.

Situación
Utilizando Microsoft Aplication Center Test (ACT 1.0) se comprueba la
estabilidad&rendimiento tanto del servidor
como del servicio web.
Se configura esta herramienta para que consuma el servicio web desarrollado
simulando 20 usuarios simultaneos
(la herramienta está en otro PC instalada no en el servidor).

Problema
El problema radica en que el servidor va abriendo threads conforme le
llegan peticiones de consumo del web services llegando a tener
simultaneamente un número parecido a usuarios conectados. Al llegar a un
número de threads abiertos a la vez la CPU hace picos de 100%. El número
límite de threads abiertos simultaneos puede ser como mucho 4 (comprobado).
Un número mayor provoca que el tiempo medio de respuesta del primer byte
(TTFB) sea muy elevado, 11 segundos, en cambio, si el número simultaneo de
threads abiertos es 4, baja a 0.5 segundos, porque no hace picos de 100% CPU.

Lo que se necesita
Se necesita limitar a 4 el número de threads/procesos abiertos simultáneos
mediante parámetros de configuración,(NO mediante código). Para ello se
dispone del fichero de configuración propio del web services Web.config

Consultando con Microsoft (p.e. http://support.microsoft.com/kb/821268) se
aconseja que se realice cambios sobre los siguientes parámetros :
• maxWorkerThreads
• minWorkerThreads
• maxIoThreads
• minFreeThreads
• minLocalRequestFreeThreads
• maxconnection
• executionTimeout

para optimizar el rendimiento, pero no hemos sabido como limitar el número
de threads/procesos
abiertos simultáneos a 4 teniendo en cuenta las características del servidor
(4 cpu..).

También es posible que existan otros parámetros que desconocemos, se
necesita saber que parámetro/s hay que configurar y con que dato/s (puede ser
a nivel de web.config o machine.config).


si podeis contstar a miguel_sabin@yahoo.es o miguel_sabin@hotmail.com
os lo agradecería debido a la limitación de acceso a paginas Web.

Preguntas similare

Leer las respuestas

#1 Miguel
26/04/2007 - 09:54 | Informe spam
SON 4 PROCESADORES! no 42

"Miguel" wrote:

Entorno Servidor
Windows Server 2003 Services Pack 1
42 procesadores Xeon 5130 2Ghz/4MB
2 discos 73Gb SAS 15000rpm
2 Gb 667Mhz (4x512Mb)
PSU redundante

Software
IIS 6.0
Framework 2.0


Desarrollo
Web Services en C# cuya finalidad es ejecutar un aplicativo externo via
comando.

Situación
Utilizando Microsoft Aplication Center Test (ACT 1.0) se comprueba la
estabilidad&rendimiento tanto del servidor
como del servicio web.
Se configura esta herramienta para que consuma el servicio web desarrollado
simulando 20 usuarios simultaneos
(la herramienta está en otro PC instalada no en el servidor).

Problema
El problema radica en que el servidor va abriendo threads conforme le
llegan peticiones de consumo del web services llegando a tener
simultaneamente un número parecido a usuarios conectados. Al llegar a un
número de threads abiertos a la vez la CPU hace picos de 100%. El número
límite de threads abiertos simultaneos puede ser como mucho 4 (comprobado).
Un número mayor provoca que el tiempo medio de respuesta del primer byte
(TTFB) sea muy elevado, 11 segundos, en cambio, si el número simultaneo de
threads abiertos es 4, baja a 0.5 segundos, porque no hace picos de 100% CPU.

Lo que se necesita
Se necesita limitar a 4 el número de threads/procesos abiertos simultáneos
mediante parámetros de configuración,(NO mediante código). Para ello se
dispone del fichero de configuración propio del web services Web.config

Consultando con Microsoft (p.e. http://support.microsoft.com/kb/821268) se
aconseja que se realice cambios sobre los siguientes parámetros :
• maxWorkerThreads
• minWorkerThreads
• maxIoThreads
• minFreeThreads
• minLocalRequestFreeThreads
• maxconnection
• executionTimeout

para optimizar el rendimiento, pero no hemos sabido como limitar el número
de threads/procesos
abiertos simultáneos a 4 teniendo en cuenta las características del servidor
(4 cpu..).

También es posible que existan otros parámetros que desconocemos, se
necesita saber que parámetro/s hay que configurar y con que dato/s (puede ser
a nivel de web.config o machine.config).


si podeis contstar a o
os lo agradecería debido a la limitación de acceso a paginas Web.
Respuesta Responder a este mensaje
#2 Diego Jancic
26/04/2007 - 18:48 | Informe spam
Hola,
Si no recuerdo mal, eso se puede configurar por App Pool en el IIS, no
por web.config.

Saludos!,
Diego
Respuesta Responder a este mensaje
#3 Miguel
27/04/2007 - 09:02 | Informe spam
Con IIS 6.0 no tiene la opcion de Pool solo de conexiones y no quiero limitar
las conexiones ino que se encolen y solo esté 4 a la vez de ahi los
threads...uf yo es que no encuentro la solución solo para optimizar no para
limitar a 4...
gracias.

"Diego Jancic" wrote:

Hola,
Si no recuerdo mal, eso se puede configurar por App Pool en el IIS, no
por web.config.

Saludos!,
Diego


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida