加载中...

惊群效应(Thundering Herd)指多个进程或线程等待同一事件,事件发生时全部被唤醒,但最终只有一个能获得资源,其余白白经历唤醒、竞争、再休眠的过程,造成大量无效调度与上下文切换。
经典案例是多进程服务器同时在同一监听套接字上 accept:一个连接到来会唤醒所有工作进程。Linux 内核后来对 accept 做了排他唤醒优化;Nginx 曾通过 accept_mutex 让工作进程轮流监听,内核的 SO_REUSEPORT 则允许多个套接字分摊连接,从根本上缓解该问题。
分布式系统中的变体是缓存失效风暴:热点缓存过期瞬间,海量请求同时穿透到数据库重建缓存。常用对策包括互斥重建(只放一个请求回源)、逻辑过期异步刷新、过期时间加随机抖动。
惊群是「唤醒语义」设计不当的典型代价,其应对思路——排他唤醒、分片、加锁收敛——是高并发系统设计的常识性功课。

登录 后参与讨论
暂无讨论,来发表第一条评论吧