Diagnosing ASP.NET Core Thread‑Pool Starvation from Sync‑Over‑Async Blocking
When ASP.NET Core requests suddenly spike in latency while CPU stays low, the culprit is often thread‑pool starvation caused by sync‑over‑async blocking. This guide shows how to spot the symptoms, run targeted diagnostics, map findings to fixes, and know when to ask the runtime team.