0

假设当前负载较小,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 的执行环境?

1个回答

0

http://fastjoomlahost.com/mod...

我觉得这篇文章可以参考下,mod_php的作用是可以把php嵌入到apache,这样apache能直接运行php程序,不需要单独开一个php进程,理论上会比php-fpm资源占用更小。

撰写答案