【问题标题】:nginx + php-fpm produces 300ms overheadnginx + php-fpm 产生 300ms 开销
【发布时间】:2018-10-09 16:18:29
【问题描述】:

我目前已经设置了一个服务器来托管一个 WordPress 站点,一个运行所有 nginx、php-fpm、WordPress 和 MariaDB 的服务器。该网站在主题中进行了大量定制。当我优化网站时,我从 WP 级别开始并取得了一些成功,调试栏报告 PHP 加载时间从 ~700ms 到 ~300ms,但是在开发人员控制台中 PHP 需要 ~600ms 才能完成加载(服务器 ping

为了隔离问题,我在 index.php 中使用了 microtime() 并确认整个 WP PHP 花费了

然后尝试解决,我尝试了这些设置:

  • 使用 HTTP 并禁用 GZIP
  • fastcgi_buffering off
  • 关闭访问日志
  • 启用tcp_nopushtcp_nodelay

但是改进并不显着。我想知道是否有可能摆脱约 250 毫秒的开销?在我看来,像 nginx 这样的高性能软件上的 250 毫秒是不合理的,应该能够被淘汰。任何线索和帮助表示赞赏。

PS:这是第一次问SO,如果我不遵守约定和规则,请见谅。

【问题讨论】:

    标签: php nginx


    【解决方案1】:

    事实证明,它是Autoptimize plugin to blame。简而言之,Autoptimize 在开始时执行 ob_start 并开始缓冲整个 HTML 输出,当所有脚本结束时(即 index.php 退出),然后将执行 Autoptimize 的一些代码并进行缩小,然后再将任何内容发送到 nginx。结果:

    1. 即使在 index.php 中使用 microtime() 也无法正确计时整个处理,因为缩小在 index.php 结束后开始。
    2. 由于它缓冲了整个输出,因此在缩小完成之前无法发送第一个字节。

    我们已经对 Autoptimize 的各种配置进行了基准测试,结果基本上建议将其删除,即启用任何 HTML/CSS/JS 缩小都会严重降低性能/增加 TTFB。

    基准测试

    所有 CSS JS HTML 上

    TTFB                 513
    Overall_Elapsed      593
    Body Size            464598
    Req Count            144-154
    

    HTML 关闭,JS CSS 开启

    TTFB                 318
    Overall_Elapsed      380
    Body Size            518211
    Req Count            144-155
    

    HTML 开启,JS CSS 关闭

    TTFB                 478.5
    Overall_Elapsed      519
    Body Size            285995
    Req Count            161-165
    

    HTML JS CSS 关闭

    TTFB                 75.8
    Overall_Elapsed      373
    Body Size            340439
    Req Count            163-172 
    

    在 WP 中禁用自动优化

    TTFB                 78.9
    Overall_Elapsed      376
    Body Size            339917
    Req Count            163-171
    
    • 请求因广告网络而波动。

    结论

    在我们的主题中,我们有 12 个 JS 和 1 个 CSS,以及一些其他插件的 JS 和 CSS。由于我们可以轻松地将 12 个 JS 合并为一个 JS,因此减少了 19 个请求,我们可以自己减少 11 个。

    此外,通过将整个 style.css 内联到 <head> 来自动优化“保存”CSS 请求,这在很大程度上使 HTML 膨胀。

    因此,我强烈建议您尝试禁用自动优化,看看您的网站速度是否真的因此而提高。

    【讨论】:

      猜你喜欢
      • 2017-09-23
      • 1970-01-01
      • 1970-01-01
      • 2020-08-08
      • 2014-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多