nginx使用多进程有啥好处


本文摘自PHP中文网,作者(*-*)浩,侵删。

nginx采用多进程模型好处

首先,对于每个worker进程来说,独立的进程,不需要加锁,所以省掉了锁带来的开销,同时在编程以及问题查找时,也会方便很多。 ( 推荐学习:nginx使用 )

其次,采用独立的进程,可以让互相之间不会影响,一个进程退出后,其它进程还在工作,服务不会中断,master进程则很快启动新的worker进程。

当然,worker进程的异常退出,肯定是程序有bug了,异常退出,会导致当前worker上的所有请求失败,不过不会影响到所有请求,所以降低了风险。

nginx多进程事件模型:异步非阻塞

虽然nginx采用多worker的方式来处理请求,每个worker里面只有一个主线程,但是nginx采用了异步非阻塞的方式来处理请求,也就是说,nginx是可以同时处理成千上万个请求的。

一个worker进程可以同时处理的请求数只受限于内存大小,而且在架构设计上,不同的worker进程之间处理并发请求时几乎没有同步锁的限制,worker进程通常不会进入睡眠状态。

因此,当Nginx上的进程数与CPU核心数相等时(最好每一个worker进程都绑定特定的CPU核心),进程间切换的代价是最小的。

而apache的常用工作方式(apache也有异步非阻塞版本,但因其与自带某些模块冲突,所以不常用),每个进程在一个时刻只处理一个请求。

因此,当并发数上到几千时,就同时有几千的进程在处理请求了。这对操作系统来说,是个不小的挑战,进程带来的内存占用非常大,进程的上下文切换带来的cpu开销很大,自然性能就上不去了,而这些开销完全是没有意义的。

以上就是nginx使用多进程有啥好处的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

nginx为什么比apache快

nginx在centos7.3下的部署

iis跟nginx哪个好

nginx日志怎么看

如何解决nginx中的500、502、503、504错误

nginx静态网站不显示图片怎么解决

细说nginx的内置变量

nginx是什么,做什么用的?

nginx为什么这么快

深入 nginx 之配置篇

更多相关阅读请进入《nginx》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...