首页 > 解决方案 > 不同的服务器处理 TTFB 和内容下载的方式不同

问题描述

我有一个网页显示有问题的缓慢。在调试它时,我注意到在第一次请求 (TTFB) 之后,90% 到 99% 的等待时间都花在了服务器上,平均约为 8 秒。怀疑是针对未优化的查询,大量没有适当索引的内部和外部连接等......但这不是问题:)

我注意到,在生产服务器上(在 OVH 的 dedi 机器上运行 Cloudlinux),对于与我的开发机器(运行 MAMP Pro 的 Mac OS X)相同的总等待时间,分布(和行为)是完全不同的并想知道是否有人对原因有任何确切的了解:

好的,两台服务器之间的负载不同。但无论如何,这种模式很奇怪:在 Linux (Apache2 + php 7.3 + MySQL) 上,服务器似乎准备好了一切,当一切准备就绪时,它会将要下载的全部内容交给浏览器 (Chrome) 继续执行很快。

在 MAMP 服务器(Apache 2、PHP 7.3、MySQL)上,看起来浏览器(相同的 Chrome)开始下载和显示内容,即使服务器仍在处理页面的其余部分。

我不确定这是 PHP 或 Apache 配置中设置的行为,还是平台差异所固有的。如果有人能指出我正确的方向,那就太棒了。

让生产服务器像我的本地开发机器一样运行将是在等待重构发生时使该页面更可用的第一步。

编辑:

为了测试 PHP 缓冲输出,我添加了一个带有该行的 .user.ini 文件,php_value output_buffering Off试图关闭任何缓冲。这没有发生,当所有“工作”完成后,页面仍然显示,TTFB 仍然占总等待时间的 99%。

标签: phpmysqlapachemamplamp

解决方案


推荐阅读