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.
 

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.

Preguntas similares