惊群问题

这篇文章讲的不错

http://blog.csdn.net/liujiyong7/article/details/43346829

 

先说结论吧:

1. Linux多进程accept系统调用的惊群问题(注意,这里没有使用select、epoll等事件机制),在linux 2.6版本之前的版本存在,在之后的版本中解决掉了。

2. 使用select epoll等事件机制,在linux早期的版本中,惊群问题依然存在(epoll_create在fork之前)。 原因与之前单纯使用accept导致惊群,原因类似。Epoll的惊群问题,同样在之后的某个版本部分解决了。

3. Epoll_create在fork之后调用,不能避免惊群问题,Nginx使用互斥锁,解决epoll惊群问题。

 

另外,补充一下,这篇文章说,nginx里面的惊群,问题不大。 accept_mutex选项可以不加。

http://os.51cto.com/art/201308/408261.htm

 

简单点说:Apache动辄就会启动成百上千的进程,如果发生惊群问题的话,影响相对较大;但是对Nginx而言,一般来说,worker_processes会设置成CPU个数,所以最多也就几十个,即便发生惊群问题的话,影响相对也较小。

 

posted @ 2017-03-02 16:48  blcblc  阅读(328)  评论(0编辑  收藏  举报