为了账号安全,请及时绑定邮箱和手机立即绑定

apache php_mod 和 php-fpm fast-cgi 的处理php请求时初始化执行环境的区别

apache php_mod 和 php-fpm fast-cgi 的处理php请求时初始化执行环境的区别

PHP
阿晨1998 2019-03-12 07:37:11
假设当前负载较小,prefork 模式下的 apache 维持的最小空闲进程数的处理能力完全能满足请求量,也就是说这些进程在没有达到 MaxRequestsPerChild 时不会被回收销毁。那么这些常住内存的 php_mod 进程是否等同于 php-fpm 里的常住内存的 fast-cgi 进程呢?他们持有资源是否相同? 我自己理解的 php 的 fast-cgi 进程创建时载入 php解释器,php.ini 和 各项依赖 创建好 php的执行环境并持有,处理请求时只需重复的载入需要处理的 php 脚本即可。 那 apache 的 php_mod 都载入了什么?是同 php 的 fast-cgi 所持有的相同,还是说只是个引导模块,请求到达时才会去载入 php解释器,php.ini 和 各项依赖,即使 apache 没有回收此进程,它在处理完请求后也会释放所持有的 php 的所有资源,下个请求到来时重新载入 php解释器,php ini 和 各项依赖,只不过 apache 节省了创建进程的开支,和 php 相关的东西都会被一次次的重新载入? 说了这么多,其实就一句话:php_mod 进程有没有预加载并持有 php执行的环境,请求到达时只需要载入相应的 php 脚本即可,还是说 php_mod 进程每次都要重复的初始化 php 的执行环境?
查看完整描述

3 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

根据实际测试,发现还是event的性能要比prefork来得好,相同请求下event的资源消耗比prefork少%20以上。

查看完整回答
反对 回复 2019-03-18
  • 3 回答
  • 0 关注
  • 339 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信