PHP-FPM运行模式解析:如何选择适合的服务器模式

Jaysun

服务器很多的时候会出现内存跑满,直接卡死的状态,在优化服务器和Mysql数据库配置文件的时候,PHP有个运行模式引起我的注意,觉得不错,可以仔细的研究下,当然解决内存卡死的原因很多,今天仅仅聊聊PHP-FPM的运行模式,不代表是因为运行模式引起的内存卡死,请勿过多解读,设置正确可以缓解服务器堵塞,PHP-FPM(FastCGI Process Manager)是一个PHP FastCGI实现,它可以处理PHP请求并将结果返回给Web服务器。PHP-FPM有三种运行模式:静态、动态和按需。每种模式都有其优缺点,选择哪种模式取决于您的服务器性能和应用程序需求。

静态模式

在此模式下,PHP-FPM在启动时创建固定数量的子进程。这意味着无论实际需求如何,内存和CPU资源都是预先分配的。如果您的应用程序需求相对稳定且较低,这是一个不错的选择,因为它可以减少内存和CPU的浪费。

动态模式

在此模式下,PHP-FPM根据需要动态地创建和销毁子进程。您可以设置最小和最大子进程数量,以及空闲子进程的超时时间。这种模式在需求不稳定或波动的情况下很有用,因为它可以根据需求自动调整资源分配。

按需模式

在此模式下,PHP-FPM只在需要时创建子进程,并在一段时间内没有请求时销毁它们。这种模式在资源有限的情况下很有用,因为它可以在不需要时释放资源。

对于我服务器的情况,服务器配置为2核4G3M,推荐使用【动态模式】。这是因为【动态模式】可以根据需求自动调整资源分配,从而更好地利用服务器资源。在这种情况下,您可以设置较低的最小子进程数量,以确保在低负载时有足够的资源可用,同时设置较高的最大子进程数量,以确保在高负载时不会耗尽服务器资源。

202404231713840597802212.png

在Nginx配置中,您可以通过以下方式设置PHP-FPM的运行模式:

PS:还是那句话,修改文件配置前记得备份,备份,备份!!!

pm.max_children = 50  # 最大子进程数量
pm.start_servers = 5   # 启动时创建的子进程数量
pm.min_spare_servers = 2  # 最小空闲子进程数量
pm.max_spare_servers = 10  # 最大空闲子进程数量
pm.max_requests = 500  # 每个子进程处理的最大请求数量,之后会自动重启

请注意,这些值只是示例,您需要根据您的应用程序需求和服务器性能进行调整。在实际应用中,您可能需要进行性能测试和调整,以找到最佳配置。我的服务器配置一般,所以设置如图,效果还不错,具体还要看程序及访问量去优化和设置,此文仅供参考,有其他问题留言反馈,一起探讨探讨!

您需要 登录账户 后才能发表评论

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
验证码
评论列表 (暂无评论,77人围观)

还没有评论,来说两句吧...

目录[+]

取消
微信二维码
微信二维码
支付宝二维码