
Tenemos un sitio web implementado en Azure que tiene un rendimiento terrible. Cuando aumenta la carga, los tiempos de respuesta aumentan a minutos enteros. La carga de la CPU ni siquiera es alta, en algún lugar en la región del 40% (ejecutamos una instancia mediana (S2)).
Después de mucha depuración (no tenía idea de qué causó esto), finalmente encontré un registro 'FREB' donde dice que las solicitudes están en cola:
- AspNetStart Data1="GET", Data2="/profiel/aanvullen", Data3="" 13:48:44.279
- AspNetReqQueued 13:48:44.810
- AspNetReq en cola 13:49:39.545
- AspNetAppDomainIntroduzca datos1="/LM/W3SVC/xxxx/ROOT-1-xxxxx
Pensé que las instancias de Azure se configurarían de manera "óptima" desde el primer momento, por lo que no tendría que preocuparme por configurar cosas como maxconnection
o maxConcurrentThreadsPerCPU
. El sitio no utiliza ninguna base de datos, pero invoca 2 API REST diferentes, por lo que pensé que se producirían colas allí. Intenté verificar la webrequest.ServicePoint.ConnectionLimit
propiedad, pero recuerdo que imprimió algo así como 2 millones (o podría haber sido max int).
Como el uso de la CPU es bajo, Azure no activará una nueva instancia y no creo que otra instancia ayude.
Básicamente tengo 2 preguntas:
- ¿Cuál podría ser la causa de esto? ¿Qué debo cambiar?
- ¿Cómo podría depurar esto? Hay tantos gráficos y configuraciones en Azure. No estoy seguro de dónde puedo ver exactamente lo que necesito ver. ¿Es el ancho de banda un cuello de botella, la cantidad de solicitudes abiertas a un servicio web en particular, algo más, etcétera?