假设当前负载较小,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解释器,phpini和各项依赖,只不过apache节省了创建进程的开支,和php相关的东西都会被一次次的重新载入?说了这么多,其实就一句话:php_mod进程有没有预加载并持有php执行的环境,请求到达时只需要载入相应的php脚本即可,还是说php_mod进程每次都要重复的初始化php的执行环境?
添加回答
举报
0/150
提交
取消