21:10晴朗微风灵感
阳台小坐237

关于异步运行时与晚风的片刻

傍晚的江风吹散了白天的暑热。调试 Tokio runtime 时的死锁问题,最后发现竟是一个作用域锁守卫没有提前释放。
技术思考Rust生活

傍晚吹来一阵清凉的江风,终于把连日来的闷热吹散了些许。

下午在排查一个基于 Rust 构建的高并发网络中继服务,压测到 5 万并发时偶尔会出现长尾延迟和工作窃取饥饿。一路翻看 trace 日志与 dump 栈帧,最终定位到一个看似不起眼的读写锁 guard 在跨 await 点时被隐式持有,导致线程池中的工作线程被阻塞。

将其重构成无锁的消息通道(mpsc channel)传递所有权后,压测曲线瞬间拉成了一条平滑的直线。

坐在阳台上吹着晚风,忽然觉得编写无锁与异步代码的过程,极像是一种“流水不争先,争的是滔滔不绝”的哲学。不强行争夺独占资源,而是让数据随着管道自然流淌。

今晚的月色很美,晚风很轻。