这篇文章主要讲解了“PHP-FPM进程的管理方式”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP-FPM进程的管理方式”吧!
本文将介绍以下内容:
PHP-FPM进程管理方式介绍
PHP-FPM如何与Nginx等Web服务器进行通信
先说一下PHP-FPM的进程模型,PHP-FPM采用的是Master/Worker进程模型。当PHP-FPM启动时,会读取配置文件,然后创建一个Master进程和若干个Worker进程(具体是几个Worker进程是由php-fpm.conf中配置的个数决定)。Worker进程是由Master进程fork出来的。
Master进程和Worker进程的作用:
Master进程:负责管理Worker进程、监听端口
Worker进程:处理业务逻辑
PHP-FPM进程管理方式有动态(Dynamic)、静态(Static)、按需(Ondemand)三种,下面将一一介绍。
动态(Dynamic) 在这种方式下,PHP-FPM启动时会创建一定数量的Worker进程。当请求数逐渐增大时,会动态增加Worker进程的数量;当请求数降下来时,会销毁刚才动态创建出来的Worker进程。在这种方式下,如果配置的最大进程数过大,当请求量增加时会出现大量Worker进程,进程之间会频繁切换,浪费大量CPU资源。
下面的三个参数可以配置Worker进程的数量:
pm.start_servers:动态方式下的起始php-fpm进程数量。
pm.min_spare_servers:动态方式下的最小php-fpm进程数量。
pm.max_spare_servers:动态方式下的最大php-fpm进程数量。
静态(Static) 这种方式下,PHP-FPM启动时会创建配置文件中指定数量的Worker进程,不会根据请求数量的多少而增加减少。因为PHP-FPM开启的每个Worker进程同一时间只能处理一个请求,所以在这种方式下当请求增大的时候,将会出现等待的情形。
下面的参数可以配置Worker进程的数量: pm.max_children:静态方式下开启的php-fpm进程数量。
按需(Ondemand) 在这种方式下,PHP-FPM启动时,不会创建Worker进程,当请求到达的时候Master进程才会fork出子进程。在这种模式下,如果请求量比较大,Master进程会非常繁忙,会占用大量CPU时间。所以这种模式不适合大流量的环境。
在Nginx+PHP-FPM的架构中,Web服务器是如何与PHP-FPM通信的呢?
当用户请求一个http地址时,Nginx会收到请求,然后将请求转发给PHP-FPM,PHP-FPM收到请求后会将请求转发给一个空闲的Worker进程。当Worker进程处理完后会将结果返回给Nginx,Ngixn再讲内容返回给用户。
感谢各位的阅读,以上就是“PHP-FPM进程的管理方式”的内容了,经过本文的学习后,相信大家对PHP-FPM进程的管理方式这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。