
Rust 服務卡頓區分異步任務餓死、鎖競爭和分配抖動Tokio 任務很多不等于并發有效。一個任務長時間占用執行線程、同步鎖跨 await 或阻塞 I/O 未隔離都可能讓運行時看起來“突然卡住”。先找等待點記錄請求階段和任務標識用 tracing 觀察 span 間隔查看運行時 worker 是否被長任務占用再用剖析區分 CPU、鎖和分配熱點。總延遲不能說明是調度器還是下游。同步計算可拆分或交給受限的阻塞線程池共享狀態盡量縮小鎖范圍不在持鎖時 await通道要有容量和滿載行為。擴大 worker 數只是一個待驗證變量不是默認修復。回歸條件固定輸入、并發方式和依賴響應覆蓋調用方取消、隊列已滿與服務關閉。修改后同時看尾延遲、錯誤和資源峰值確認沒有把等待從鎖轉移到隊列。