【问题标题】:3 second time to first byte3 秒到第一个字节
【发布时间】:2018-12-24 17:41:27
【问题描述】:

我一直在维护一个 PHP/SQL 电子商务应用程序,客户打电话说他们的 ttfb 持续跳到近 3 秒。

我尝试过的:

  1. 创建一个 test.php 页面来回显一些文本会产生一个 30 毫秒的 ttfb。
  2. 返回提交历史并检查是否有任何最近的更改可能是罪魁祸首。

测试页面加载很快让我相信它是某种查询或逻辑,在站点上的每个其他页面上运行(auth?),但自从 ttfb 跳转以来最近的提交都没有任何效果。这怎么会随机发生?

【问题讨论】:

  • 他们的数据库配置是否发生了变化和/或他们现在获得了更多流量?可能是某些资源拥塞了(网络服务器工作者、数据库连接池、数据库本身等)

标签: php sql performance time-to-first-byte


【解决方案1】:

这其实是一个性能优化问题,可以通过profiling来解决。

对于分析,您可以使用 xdebug 或其他可用的工具,但是我个人在遇到类似情况时没有找到有用的解决方案,所以我只是做了一个简单的分析模块改编到应用程序。

您想要做的是尝试在本地或临时服务器上模仿生产中的确切设置、服务器设置、数据库条目等。然后只需测量从 index.php 中的第一行开始的执行时间,到应用程序的关键部分,例如 db 读/写类,http 请求类。然后将数据写入某个数据库,以便生成分析报告。

因此,对于每个路由和/或操作,您会想查看已发出多少个数据库请求,执行它们需要多长时间,已发出多少 API 调用(如果是这种情况)等等。最后,目标是清楚了解执行流程的哪一部分需要多长时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-23
    • 1970-01-01
    相关资源
    最近更新 更多