Nginx为什么可以支持高并发
Posted 百鬼之主
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx为什么可以支持高并发相关的知识,希望对你有一定的参考价值。
惊群现象
master进程首先通过 socket() 来创建一个socket文件描述符用来监听,然后fork生成子进程(workers 进程),那么当连接进来时,所有子进程都将收到master进程的 通知并“争着”与它建立连接,这就叫“惊群现象”。大量的进程被激活又挂起,只有一个进程可以accept() 到这个连接,这当然会消耗系统资源
nginx对惊群现象的处理accept_mutex(加锁)
nginx 提供了一个 accept_mutex 这个东西,即每个 worker 进程在执行accept之前都需要先获取锁,获取不到就放弃执行accept()。有了这把锁之后,同一时刻,就只会 有一个进程去accpet(),这样就不会有惊群问题了
以上是关于Nginx为什么可以支持高并发的主要内容,如果未能解决你的问题,请参考以下文章