You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
| Normal operation | < 50ms | Thread pool threads are available |
207
+
| Thread pool starvation | 100ms - 30s+ | Requests queued waiting for threads |
208
+
| Timeout | 30s | No thread available within timeout |
209
+
210
+
### Key Insight
211
+
212
+
The probe runs on a **dedicated thread** (not from the thread pool), so it can always send requests. However, the ASP.NET Core server uses the thread pool to process incoming requests. During starvation:
213
+
214
+
1. The probe request is sent immediately
215
+
2. The request sits in the ASP.NET Core queue
216
+
3. It waits for a thread pool thread to become available
217
+
4. Latency = time spent waiting + processing time
218
+
219
+
This directly demonstrates how sync-over-async anti-patterns impact end-user response times.
220
+
221
+
### Correlating with Azure Metrics
222
+
223
+
Compare the dashboard's latency chart with:
224
+
225
+
-**Application Insights** > Live Metrics > Request Duration
0 commit comments