Tokio 排障:任务、Waker 与调用链证据怎么留
Tokio 排障任务、Waker 与调用链证据怎么留异步服务卡住时线程数看起来正常任务却可能都在等同一个资源。需要记录任务在哪里进入等待又因什么被唤醒。先从运行时外部缩小范围记录请求队列、并发许可和下游耗时确认问题是没有被 poll、长时间 pending还是 poll 本身阻塞。不要一上来就在每次 poll 里打印日志。证据要能关联到任务为关键任务设置 span记录创建、等待资源、取消和完成。配合 tokio-console 或 tracing 查看繁忙任务与资源占用再回到代码核对 Waker 注册。检查阻塞调用是否进入 spawn_blocking。区分锁等待和通道背压。保存运行时配置与采样时段。修复后复跑同一条件用原来的并发方式和失败依赖验证任务能被取消、许可会释放、队列会收敛。只看服务恢复响应可能遗漏后台泄漏。异步排障的关键不是日志密度而是任务生命周期。创建和结束能对上等待点才有解释。