gpt4 book ai didi

PHP 设置 [pm.max_children、pm.start_servers、pm.min_spare_servers 和 pm.max_spare_servers]

转载 作者:行者123 更新时间:2023-12-03 07:44:44 26 4
gpt4 key购买 nike

在将网站从 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 个 child ,有 7 个空闲,总共 83 个 children

人为地增加这些数字似乎不是长期的解决方案。有任何想法吗?

EC2:
EC2

RDS:
RDS

最佳答案

  • 如果您的网站不使用任何类型的缓存,请开始使用一种。有很多选择。
  • 负载是否来自用户?尽可能减少来自机器人的负载。建立规则以阻止 IP 或代理。
  • 如果可以,请使用 gzip。它会将一些额外的工作传递给 CPU,但会减轻 Apache 的负担。
  • 避免/防止盗链。请记住,不要压缩图像或多媒体文件,只压缩文本。
  • 尝试设置KeepAlive离开。这将使用户产生更多的连接并增加 HTTP 流量和握手,但减轻连接打开。您是唯一可以找到是否需要打开或关闭它的人。
  • 减少keepalivetimeout .你可能更喜欢这个而不是关闭 KeepAlive
  • 尝试禁用尽可能多的模块。根据您对服务器的控制,这可能是不可能的。

  • 除了诸如优化服务器端语言页面、优化数据库查询等通用内容之外,我们无法在没有更多细节的情况下说出更多信息。

    根据您的图表更新

    假设所有图表具有相同的比例。

    当您的服务器达到 100% CPU 时,您有 0 次读取和 0 次写入,但您的网络使用率很高。交通要去哪里/去哪里?您可能认为这是在使用缓存,但令我惊讶的是,只有缓存可以容纳用户的全部访问权限。我的意思是,他们必须使用完全相同的文件/页面,而无需进行任何更改。问题不仅在于让所有用户访问相同资源的可能性有多大,还在于您拥有一些数据库访问权限。

    如果数据库在同一台服务器上,则来自数据库的读/写量非常低,以至于它们甚至不会提高另一个图表上的标准。如果数据库在另一台服务器上,一个不影响另一个是正常的。

    但是,即使几乎没有读/写操作,数据库也在工作,并且负载正在增加,这表明查询存在问题。可能是复杂的 View ,可能是非常低效的查询,可能是对某些查询的计算过多。队列深度似乎表明您在那里有一个瓶颈。

    我会说你有一些东西让数据库工作变得非常困难,这就是影响最大的东西。如果数据库在同一台服务器上。但这不是故事的全部。先检查一下。

    关于PHP 设置 [pm.max_children、pm.start_servers、pm.min_spare_servers 和 pm.max_spare_servers],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21974967/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com