首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调整php fpm配置

调整php fpm配置
EN

Server Fault用户
提问于 2013-01-26 15:45:41
回答 1查看 1.4K关注 0票数 1

最近,我的服务器(i7-2600 @ 4x3.4ghz,8GBRam)的负载平均值非常高。我缓存了最流行的页面,并试图删除它们,以测试它们是否是错误的,但是它并没有给出重大的更改。

当我重新启动服务器时,负载平均值低于1.0,然后突然开始增长,转到6.00-25.00,我得到504个网关超时错误,ssh变得非常慢,并造成了很多问题。

我认为这与我的php-fpm配置有关,因为我一直在使用mysqltuner.pl,并按照说明进行了操作,正如我说的那样,我缓存并删除了几分钟最流行的页面,它们还对左联接等进行了大量的查询,我的意思是负载可能会下降约5%,但这不是I‘m之后的情况。

我的网站每5分钟就有大约500个独特的用户(谷歌分析,实时统计),每秒钟大约有5-15页的浏览量。

所以这里是我的php配置,谁能建议调整什么呢?

pm =动态pm.max_children = 500 pm.start_servers = 400 pm.min_spare_servers = 50 pm.max_spare_servers = 500 pm.max_requests =0

EN

回答 1

Server Fault用户

发布于 2013-01-26 15:58:37

您不太可能有足够的RAM来运行500个PHP进程。在我的盒子里,它们通常占40-80MB,这取决于它们正在做什么。

所以这里的情况是,当您启动PHP时,它会尝试启动自己的400个副本,因为这是您指定的。但是你需要的内存至少是你现在的两倍!所以这台机器很快就开始交换了,然后磨得停了下来。

大幅下降这些数字,直到你完全在你的记忆范围内。您不需要同时运行400个进程来处理每秒5-15页的浏览量。

您还应该为pm.max_requests设置一个值,以防在PHP或可能使用的另一个PHP模块中发生内存泄漏。不幸的是,这种情况太普遍了。

要使您的服务器重新受到控制,请从以下几个方面开始:

代码语言:javascript
复制
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 10
pm.max_spare_servers = 50
pm.max_requests = 500

这给你足够的空间来处理正常的流量和高达5倍的正常负载。如果您开始变得更加繁忙,并且看到有关子级耗尽的日志条目,您可以引发pm.max_children,但是在您访问之前检查您的空闲内存;如果您到了这一点,您可能需要升级服务器。

票数 4
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/472656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档