[英]WARNING: [pool inter] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children,
[英]PHP Settings [pm.max_children, pm.start_servers, pm.min_spare_servers and pm.max_spare_servers]
在将网站从GoDaddy共享服务器转移到EC2实例的过程中。 至少可以说,在通常一天的高峰时段,要处理大约300名活跃的访问者,这是一个问题。 我的CPU使用率缓慢上升,最终达到100%,从而使网站基本上无法使用。 我一直在尝试从错误日志中解决问题,并且想知道是否有更重要的问题要解决。
查看Apache错误日志后,我增加了MaxClients [prefork(256)/ worker(300)/ serverlimit(256)] ==>(500/500/500)。
查看PHP错误日志后,我增加了[pm.max_children(50)/ pm.start_servers(5)/ pm.min_spare_servers(5)/ pm.max_spare_servers(35)] ==>(100,10,10,70)
即使有这些数字,我仍然会发出警告:[23-Feb-2014 04:34:47]警告:[pool www]似乎很忙(您可能需要增加pm.start_servers或pm.min / max_spare_servers),生成32孩子,有7个闲置,共有83个孩子
人为地增加这些数字似乎不是长期的解决方案。 有任何想法吗?
EC2:
RDS:
除了诸如优化服务器端语言页面,优化数据库查询等一般性内容外,我们无法提供更多细节。
根据您的图表进行更新
假设所有图形具有相同的比例。
当服务器达到100%CPU时,您的读取次数为0,写入次数为0,但是网络使用率很高。 那交通往哪里去? 您可能以为正在使用缓存,但令我惊讶的是,仅缓存就可以容纳用户的全部访问权限。 我的意思是,他们必须使用完全相同的文件/页面,而无需进行任何更改。 这样的问题不仅在于让所有用户都使用相同的资源是多么不可能,还在于您具有一定的数据库访问权限。
如果数据库位于同一服务器上,则数据库的读/写操作非常低,以至于它们甚至都不会提高其他图形上的标尺。 如果数据库在另一台服务器上,则正常情况下,一个服务器不会影响另一个服务器。
但是,即使在几乎没有读写的情况下,数据库仍在工作,并且负载也在增加,这表明查询存在问题。 可能是复杂的视图,可能是效率很低的查询,可能是某些查询的计算量过多。 队列深度似乎表明您在那里遇到瓶颈。
我要说的是,有些事情使数据库的工作变得非常困难,而这正是影响最大的问题。 数据库是否在同一服务器上。 但这不是全部。 首先检查。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.