首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何优化时间到第一字节(TTFB)?

如何优化时间到第一字节(TTFB)?
EN

Server Fault用户
提问于 2011-10-30 19:02:18
回答 2查看 14.9K关注 0票数 1

我有几个网站的nginx+apache网络服务器。

但是对于第一个字节(TTFB)来说,有很长的时间:对于每个请求(对于静态和动态内容),0,5-2秒。

如何优化时间到第一字节(TTFB)?

EN

回答 2

Server Fault用户

发布于 2011-10-30 19:54:38

一般来说,第一个字节的时间取决于:

DNS查找:定义:查找域改进的IP地址:更多/分布式/响应的DNS服务器

连接时间:定义:打开服务器的套接字,协商连接的改进:典型的值应该围绕'ping‘时间--往返通常是必要的。

等待:定义:在发送第一个字节之前所需的初始处理改进:这是您应该改进的地方--对于动态内容来说,这将是最重要的。

另一项考虑来自:

处理(在第一个字节之后):定义:等待+内容完整传输的总和得到改善:如果传输时间明显长于下载所接收数据量的预期时间,则正在进行进一步处理,并可进行优化(例如,该页面正在按可用内容刷新内容)。

考虑到我不知道您是如何执行测试的(或者您的设置或您正在提供的内容),以下是一些相当一般的建议:

首先,尝试在远程(客户端)机器上使用Firebug,在服务器上使用ab (ApacheBench)之类的东西。这将有助于将TTFB编号分解为其组件值,以便您可以专注于一次修复它们--或者缩小问题范围。从不同位置运行测试还有助于指出连接时间和DNS查找中的问题,如果直接从服务器运行这些问题可能不会发生。此外,您还需要从远程机器到服务器运行ping,以确定有多少时间被简单地归因于“往返时间”。

其次,尽量避免使用nginx作为反向代理。如果每个请求在到达Apache之前都必须通过nginx,那么它将比Apache慢。尝试直接从nginx (即完全绕过Apache )提供静态文件,并缓存从Apache接收到的一些内容(即proxy_cache)。Nginx应该能够极快地提供静态文件,特别是如果测试是从本地机器运行的。如果这不是真的,那么您需要查看您的配置和服务器所使用的资源。

第三,尝试确定您的性能受影响的地方-是Apache还是nginx?比较通过nginx请求和直接向apache请求的ab结果(只需更改端口,并指定主机头),以确定反向代理是否是一个重要的瓶颈。

您已经提到,这个问题同样适用于静态和动态内容--但是下一步将是分析您的脚本,并查看缓慢的查询日志以确定是否存在任何重要的瓶颈。

票数 5
EN

Server Fault用户

发布于 2011-10-30 19:55:46

一些想法:

  1. 升级ram (用于缓冲区/缓存),
  2. 在Nginx中使用proxy_cache,
  3. 使用SSD或Ramdisk,
  4. 使用内容传递网络。

如果你想要一个更详细的答案,你必须告诉我们更多的情况。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/326164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档