Limitar el Numero Threads URGENTE!

25/04/2007 - 12:08 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 Alfredo Novoa
25/04/2007 - 12:17 | Informe spam
On Wed, 25 Apr 2007 03:08:02 -0700, Miguel
wrote:

Se necesita limitar a 4 el número de threads/procesos abiertos simultáneos



¡Que pocos!

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



Usa ThreadPool


Saludos
Respuesta Responder a este mensaje
#2 Miguel
25/04/2007 - 12:26 | Informe spam
Mediente desarrollo no quiero hacerlo, solo parámetros del web.config
(machine.config) pero muchas gracias buscaré información ThreadPool

El tema de que sea poco es que a partir de 4 simultaneos la CPY llega a 100%
y produce retrasos del primer bytes, pasando de 0.5 a 11 segundos, el cliente
prefiere que si hay 10 usuarios a 4 le responda en 0.5 y los otros se encolen
a que le respondan a todos en 11 segundos.

"Alfredo Novoa" wrote:

On Wed, 25 Apr 2007 03:08:02 -0700, Miguel
wrote:

>Se necesita limitar a 4 el número de threads/procesos abiertos simultáneos

¡Que pocos!

>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

Usa ThreadPool


Saludos

Respuesta Responder a este mensaje
#3 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
#4 Miguel
26/04/2007 - 09:56 | Informe spam
SON 4 procesadores no 42


"Alfredo Novoa" wrote:

On Wed, 25 Apr 2007 03:08:02 -0700, Miguel
wrote:

>Se necesita limitar a 4 el número de threads/procesos abiertos simultáneos

¡Que pocos!

>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

Usa ThreadPool


Saludos

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