gpt4 book ai didi

performance - 使用 HTTP2 衡量性能提升

转载 作者:行者123 更新时间:2023-11-28 22:16:10 25 4
gpt4 key购买 nike

我正在使用 Tomcat 8.5.29 并使用相应的配置,我已经为网站启用了 HTTP2 支持。以下是 server.xml 文件中的配置。

<Connector port="443" protocol="org.apache.coyote.http11.Http11AprProtocol"
maxThreads="150" SSLEnabled="true"
compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json" compression="on" compressionMinSize="1024"
>
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
<SSLHostConfig>
<Certificate certificateKeyFile="conf/localhost-key.pem"
certificateFile="conf/localhost-cert.pem"
certificateChainFile="conf/cacert.pem"
type="RSA" />
</SSLHostConfig>
</Connector>

当我尝试比较支持 HTTPS 1.1 和 HTTP2 的站点的页面加载时间时,结果并不一致。与 HTTPS 1.1 相比,有时加载时间更长,有时加载时间更少。

我使用 httpwatch 来测量页面加载时间。

我正在寻找关于

的信息

A) 可以使用哪些工具来衡量使用 http2 的性能增强?我们不是公共(public)网站,因此无法使用在线提供的一些工具。

B) 除了在 tomcat 中启用 HTTP2 以获得更好的结果之外,是否还需要进行任何其他配置?

问候,

最佳答案

HTTP/2 旨在通过使用 multiplexing 更改为二进制格式来解决通过 HTTP 加载许多资源的一些低效问题.

在 HTTP/1 下,通过高延迟、远程网络(就像大部分互联网一样)请求许多资源意味着下载网站 Assets 的速度比需要的要慢。这是因为每个 HTTP/1.1 连接一次只能处理一个资源,并且在等待第一个请求发回时不能使用该连接处理另一个请求。

因此,对于您的用例,我假设这是在 Intranet 上,并且服务器可能离您很近,并且有高速链接?如果是这样的话,老实说 HTTP/2 不太可能给你带来巨大的性能提升,因为资源可能会很快被发回。因此,您没有看到这种情况的改进,我并不感到惊讶。

此外,下载多个 Assets 只是使用网站的一部分。如果网站需要大量的服务器端处理才能生成,那么下载端(HTTP/2 应该改进)可能只占加载时间的一小部分,可以忽略不计,甚至对其进行大幅改进也可能不明显。同样,如果网站在下载后仍然很慢(例如,因为它使用了大量的 JavaScript),那么迁移到 HTTP/2 也无法解决这个问题。

对我来说,HTTP/2 对于提供静态资源(图像、CSS 和 JavaScript)比来自应用程序服务器(基于 Java 或其他)的动态资源更有意义,所以我不相信对 HTTP/2 有真正的迫切需求2 关于Tomcat之类的。即使您使用 Tomcat 来提供静态资源,您最好在它前面安装一个更快的 HTTP/2 网络服务器(Apache、Nginx)并将它们卸载到它,并且只将真正的动态内容代理到 Tomcat。

因此,虽然 HTTP/2 是协议(protocol)的重大改进(在大多数情况下),但它并不是使您的网站速度提高 10 倍的神奇修复。说 HTTP/2 是 future 的恕我直言,所以没有什么理由转向它(主要是在许多实现中缺乏对 HTTP/2 的支持 - 特别是如果运行旧版本的服务器软件,但您已经解决了该问题)。

无论如何,回到您的问题:我建议的最简单方法是在浏览器中使用开发人员工具来查看在使用和不使用 HTTP/2 的情况下加载网站需要多长时间——这最终是您的用户所体验到的。如果您可以通过编程方式执行此操作(例如,记录使用 JavaScript 完全加载页面所花费的时间并报告返回的方式)以允许进行更大规模的分析,那就更好了。这比运行 Apache 的 ab 工具等需要更多的设置,但是如果它们只下载主页而不是资源,它们将无法三重衡量 HTTP/2 带来的改进,也不会测量用户体验的整个加载时间。

关于performance - 使用 HTTP2 衡量性能提升,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49815495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com