Nginx的工作模式和一些理解
程序员文章站
2022-04-13 14:04:02
...
2、Nginx的工作模式以及可以处理高并发的一些理解
Nginx的工作模式很简单,就是采用一个master进程和多个worker工作进程,其中master进程的作用也是很明确的就是负责管理worker进程,同时监听连接请求,当连接请求到来之后将连接放入worker进程中去处理具体的业务请求,比如说http请求。 Nginx能够处理高并发的原因在于对socket的管理方式是异步非阻塞的,使用select/poll/epoll/kqueue 来实现对大量socket描述符的管理,每个worker进程有一个主线程,而没有其他的线程这样的好处就在于不需要进行线程间的切换,这样就节省了资源。所以总的来说:Nginx能够实现支持高并发的同时运行效率还很低的关键在于整个系统内部只有有限的几个工作进程和一个监听进程,而每个进程内部只有一个主线程,这样就不会引起很多的线程切换,从而降低了系统开销,同时每个线程内部使用异步非阻塞的方式来管理描述符这样就可以管理大量的描述符,当描述符多的时候也只是会占用较多的内存而已,而不会造成占用大量cpu时间。以上说的就是Nginx的进程模型和事件模型,事件模型中处理的情况主要有三种,分别是网络事件,如HTTP请求等,网络事件使用异步非阻塞模式就可以很好的解决;还有信号,定时器,信号和定时器还不是很明白。Nginx处理进程间争夺系统资源的方式:也就是进程间存在的惊群现象。
以上就介绍了Nginx的工作模式和一些理解,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
推荐阅读
-
如何理解async和await设计模式和如何应用到.net 4以下的framework
-
JAVA实现单例模式的四种方法和一些特点
-
如何正确理解和使用Activity的4种启动模式
-
关于sql和mysql对于别名不能调用的一些理解
-
有关JavaScript中call()和apply() 的一些理解
-
Ubuntu下Nginx配置ThinkPHP的Pathinfo和URl Rewrite模式
-
如何正确理解和使用Activity的4种启动模式
-
关于sql和mysql对于别名不能调用的一些理解
-
对squid中refresh_pattern的一些理解和建议
-
Numpy的ndarray和Pandas的Series和DataFrame类型的一些对比和理解