¿Qué contadores de perfmon son útiles para identificar los cuellos de botella de ASP.NET?

Dado el cuadro aquí, ¿qué debería estar mirando para identificar el cuello de botella? Como puede ver, las solicitudes tienen un promedio de casi 14 segundos bajo carga y la mayor parte de ese tiempo se atribuye al CLR en los datos de generación de perfiles de New Relic. En el desglose de rendimiento para una página en particular, atribuye la mayor parte del tiempo a la página WebTransaction / .aspx.

estadísticas capturadas por nueva reliquia durante la prueba de carga

estadísticas para una página

Veo que la base de datos también se lee (el naranja) y esto significa que una de todas las páginas ha retrasado el rest de las páginas debido al locking que la sesión hace en las páginas.

también puede leer: Reemplazar la sesión de ASP.Net por completo

Mi sugerencia es eliminar totalmente las llamadas de la sesión y si esto no es posible, busque otra forma de guardarlas en algún lugar de la base de datos por su cuenta.

De hecho, en mis páginas he hecho las tres opciones posibles. 1. Llamo a la página sin sesión. 2 He hecho una sesión totalmente personalizada que son valores conectados a la cookie del usuario, y la última 3. He creado hilos que se escapan de la sesión y hacen cálculos en el fondo, cuando terminan, muestro los resultados.

En algunos casos, los cálculos se realizan en iframe que llaman a una página sin sesión y luego muestro los resultados.

En la versión Pro, puede usar Transaction Traces, que ayuda a identificar exactamente dónde está pasando el problema.