我正在使用Tomcat8.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>当我尝试比较支持HTTPS1.1和HTTP2的站点的页面加载时间时,结果并不一致。与HTTPS 1.1相比,有时需要更多时间来加载,有时需要更少时间来加载。
为了测量页面加载时间,我使用httpwatch。
我正在寻找关于的信息
A)哪些工具可用于测量使用http2的性能增强?我们不是公共网站,所以不能使用一些网上可用的工具。
B)除了在tomcat中启用HTTP2之外,是否还需要进行其他配置才能获得更好的结果?
致以敬意,
发布于 2018-04-13 19:55:09
HTTP/2旨在通过multiplexing转换为二进制格式来解决通过HTTP加载大量资源的一些低效问题。
在HTTP/1下,通过高延迟、远距离网络(就像Internet的大部分网络一样)请求许多资源意味着下载网站资产的速度比需要的速度慢。这是因为每个HTTP/1.1连接一次只能处理一个资源,并且在等待第一个请求返回时不能使用该连接来处理另一个请求。
因此,对于您的用例,我假设这是在intranet上,服务器可能位于离您很近的地方,并有高速链接到它们?如果是这样的话,老实说,HTTP/2不太可能给你带来巨大的性能提升,因为资源很可能很快就会被发回。因此,对于您在此场景中没有看到改进,我并不感到惊讶。
此外,下载多个资源只是使用网站的一部分。如果网站需要大量的服务器端处理,那么下载端( HTTP/2应该改进)可能只占加载时间的一小部分,可能可以忽略不计,甚至可能无法察觉到巨大的改进。类似地,如果网站在下载后仍然很慢(例如,因为它使用了一吨JavaScript ),那么迁移到HTTP/2将不会解决这个问题。
对我来说,HTTP/2在提供静态资源(图像、CSS和JavaScript)方面比来自应用服务器的动态资源(基于Java或其他方式)更有意义,所以我不相信在Tomcat等平台上确实存在对HTTP/2的迫切需求。即使您使用Tomcat来提供静态资源,您也可能更好地使用一个速度更快的HTTP/2 them服务器(Apache、Nginx),并将它们卸载到该服务器上,并且只将真正的动态内容代理到Tomcat上。
因此,虽然HTTP/2是对该协议的重大改进(对于大多数情况下),但它并不是使站点速度提高10倍的神奇补丁。说HTTP/2是未来的IMHO,所以没有理由不用迁移到它(主要的原因是在许多实现中缺乏对HTTP/2的支持-特别是如果运行的是旧版本的服务器软件,但您已经解决了这个问题)。
无论如何,回到你的问题:我建议的最简单的方法是在浏览器中使用开发人员工具来查看在使用和不使用HTTP/2的情况下加载站点需要多长时间--这最终将是您的用户所经历的。如果你可以通过编程的方式(例如,记录用JavaScript完全加载页面所花费的时间,并报告一些方法)来允许更大规模的分析,那就更好了。这比运行Apache的ab工具或类似工具需要更多的设置,但是如果它们只下载主页而不是资源,那么这些工具不会三倍地测量由于HTTP/2而带来的改进,也不会测量用户体验的整个加载时间。
https://stackoverflow.com/questions/49815495
复制相似问题