EC2 上的 OpenLiteSpeed 服务器在小型电子商务网站上超时

EC2 上的 OpenLiteSpeed 服务器在小型电子商务网站上超时

希望你一切顺利 - 我在 OpenLiteSpeed Web 服务器上使用 Woocommerce 运行 Wordpress 网站,在大量使用 PHP 的情况下开始显示超时 504 错误。我将所有内容托管在 AWS 中,我正在努力找出 504 错误的原因以及可以改进哪些方面来避免这些错误。以下是一些详细信息:

AWS 设置:

  • Web 服务器安装在 t3.medium 实例中,该实例具有 Ubuntu 20.04 amd64 和 50Gb EBS 存储(启用了 I/O 优化)。目前大约使用了 10Gb。
  • 运行 PHP 7.4 和
  • 我正在使用两个 CloudFront 发行版作为 CDN:一个用于服务器映像(在 S3 中),另一个用于服务器 CSS/JS 文件。
  • 我有一个 ELB 来管理到 Web 服务器的流量,空闲超时设置为 300 秒。
  • 我有一个运行 Mariadb 10.5.13 的 db.t3.small RDS 实例(100Gb gp2),数据库大小约为 1.5gGb。
  • 我正在使用带有三个 cache.t3.micro 节点的 Redis ElastiCache。

网站统计:

  • 该网站每周的点击量约为1,000次。
  • 约350个产品页面和50个页面。
  • 页面大小范围从 500kb 到 13.5Mb。

有什么问题?

  • 当使用繁重的 PHP 函数(例如上传产品(并附加图像)、上传图像、在短时间内多次(大约 3-4 次)刷新 OLS 缓存或浏览网站打开一堆产品页面并将其添加到购物车)时,站点会超时并抛出 504 错误。
  • EC2 CPUUtilization 显示最大峰值为 99%,但网络带宽似乎可以达到 2.0Gb 的最大峰值,并且 CPU 信用保持稳定。
  • Db 连接峰值为每分钟 50 个,CPU 利用率在 20% 到 30% 之间波动。
  • 突发信贷保持稳定。
  • stderr.log 显示很多“达到最大子进程限制:35,额外:0,当前:35,繁忙:35,请增加 LSAPI_CHILDREN。”。

屏幕截图(EC2 实例):

CPU利用率%

净输入+净输出

CPU 积分余额

我到目前为止尝试过的:

  • 我尝试将最大连接数和子进程数增加到 350,但超时问题仍然存在。
  • 我已将 php.ini 内存限制增加到 512mb,但没有任何变化。
  • 尝试将数据库存储从 30Gb 增加到 100Gb,但没有成功。
  • 尝试将 EC2 实例存储从 30Gb 增加到 50Gb,但仍然没有成功。

有疑问/需要帮助

  • 根据我的设置,我应该寻找哪些指标(及其聚合)才能查明超时的根本原因?AWS 有太多信息,我不知道什么可以真正发挥作用。
  • 我是否应该扩展我的 EC2 实例以允许更多的 CPU 能力?或者我应该扩展我的 RDS 实例吗?还是不扩展?我的预算有限,所以这个选项并不可行。
  • 我可以尝试在 Web 服务器上进行任何配置吗?如果有帮助的话,我可以上传我的配置文件。
  • 我是否应该将所有东西都转移到主机托管并从此过上幸福的生活?

提前致谢

相关内容