创作人QQ:851301776,邮箱:lfr890207@163.com,欢迎大家一起技术交流,本博客主要是自己学习的心得体会,只为每天进步一点点!
个人座右铭:
1.没有横空出世,只要厚积一定发。
2.你可以学历不高,你可以不上学,但你不能不学习
此博客总结,主要是方便日后查看学习
何谓“惊群”?nginx中,master进程开始监听Web端口,fork出多个worker子进程,这些子进程开始同时监听同一个Web端口。一般情况下,有多少CPU核心,就会配置多少个worker子进程,这样所有的worker子进程都在承担着Web服务器的角色。在这种情况下,就可以利用每一个CPU核心可以并发工作的特性,充分发挥多核机器的“威力”。但下面假定这样一个场景:没有用户连入服务器,某一时刻恰好所有的worker子进程都休眠且等待新连接的系统调用(如 epoll_wait),这时有一个用户向服务器发起了连接,内核在收到TCP的SYN包时,会激活所有的休眠worker子进程,当然,此时只有最先开始执行accept的子进程可以成功建立新连接,而其他worker子进程都会accept失败。这些accept失败的子进程被内核唤醒是不必要的, 它们被唤醒后的执行很可能也是多余的,那么这一时刻它们占用了本不需要占用的系统资 源,引发了不必要的进程上下文切换,增加了系统开销。这是惊群产生的原因。
二、nginx如何解决惊群


