Tenemos un servidor remoto .NET 2.0 ejecutándose en modo Single-Call bajo IIS7. Tiene dos API, por ejemplo:Aumento de las solicitudes concurrentes en una aplicación .NET Remoting bajo IIS
- DoLongRunningCalculation() - tiene una gran cantidad de solicitudes de bases de datos y puede llevar mucho tiempo en ejecutarse.
- HelloWorld() - simplemente devuelve "Hello World".
Intentamos hacer hincapié en probar el servidor remoto (en una máquina Windows 7) en el peor de los casos mediante el bombardeo al azar con las dos llamadas a la API y se encontró que si vamos más allá de las solicitudes 10 de cliente, la respuesta HelloWorld (que generalmente es menos de 0.1 segundos) comienza a tardar más y más en muchos segundos. Nuestro objetivo es que no queremos tener llamadas remotas de larga duración para bloquear las llamadas de corta duración. Éstos son los contadores de rendimiento para ASP.NET v2.0.50727 si tenemos 20 hilos de cliente que ejecutan:
- solicitudes en cola: 0
- Las solicitudes de ejecución: (Max: 10)
- los procesos de trabajo de reproducción: 0
- Pipeline modo Instancia: (Max: 10)
- Las solicitudes de aplicación de cola: 0
Hemos intentado establecer maxConcurrentRequestsPerCPU a "5000" en regist ry según el blog de Thomas: ASP.NET Thread Usage on IIS 7.0 and 6.0 pero no ha ayudado. Con base en los datos anteriores, se observa que el número de solicitudes simultáneas se ha quedado atascado en 10.
Entonces, la pregunta es:
- ¿Cómo hacemos para aumentar las peticiones concurrentes? El objetivo principal es que no queremos tener llamadas remotas de larga duración para bloquear las llamadas de corta duración.
- ¿Por qué las ejecuciones de solicitudes máximas siempre están bloqueadas en 10?
Gracias de antemano.
En realidad, lo que observamos es un poco diferente. El límite de conexión en Windows 7 parecía ser 10; porque cuando fuimos más allá, vimos un deterioro en el rendimiento. Tiene razón, en un servidor de Windows2008, el rendimiento fue mejor, pero aún no hemos podido cuantificarlo. – hpatil
En realidad, el límite de 20 conexiones lo impone Windows. IIS aún tiene un límite de 10 conexiones, lo que explica sus resultados. El límite de 10 conexiones lo imponen todas las instancias de IIS que se ejecutan en sistemas operativos que no son servidores (para evitar que las personas intenten servir sitios sin comprar un sistema operativo de servidor). – Chris