关于http3:HTTP3QUIC-性能测试与配套组件

背景最近一年很多对于QUIC的文章层出,然而发现一个问题,这些文章都是在介绍QUIC或HTTP3是怎么的一个货色,以及它的长处和机制,将它夸的近乎入地了。然而有心的人预计会亲手做一些测试,就会发现这个被捧上天的货色性能竟然还不如HTTP1.1,这是怎么回事呢? 最近我始终在做QUIC或者说HTTP3的相干工作,就始终在憋着写这样一篇文章,给和我当初有同样疑难的人一种变相的解答。 测试测试很简略,分为两台机器,均在同一局域网内。服务器应用Nginx的QUIC分支版本,即nginx-quic。客户端应用h2load(反对HTTP3版本的)做基准测试工具。在服务端应用netem模块对网络情况进行操控,模仿不同的网络环境。申请无申请体,响应体为Nginx默认612字节首页文件,那么简略来看下测试后果吧: h2load的参数如下:-t 10 -c 100 -n 1000 -m 100,即10线程、100个连贯、1000个申请,每个连贯能够同时解决100个申请。 HTTP版本提早丢包率反复率包损毁率后果HTTP1.1----总耗时406.49ms, 24601.15 req/s QPS,21.30MB/s 每秒传输HTTP3----总耗时611.90ms, 16342.59 req/s QPS,12.98MB/s 每秒传输HTTP1.1100ms+-10---总耗时1.90s, 5275.52 req/s QPS,4.57MB/s 每秒传输HTTP3100ms+-10---总耗时3.65ms, 2740.22 req/s QPS,2.18MB/s 每秒传输HTTP1.1-30%--总耗时33.64s, 297.28 req/s QPS,263.60KB/s 每秒传输HTTP3-30%--总耗时19.82s, 504.45 req/s QPS,447.31KB/s 每秒传输HTTP1.1--70%-总耗时443.55ms, 23065.39 req/s QPS,19.97MB/s 每秒传输HTTP3--70%-总耗时419.98ms, 23810.43 req/s QPS,18.92MB/s 每秒传输HTTP1.1---20%总耗时14.46s, 691.61 req/s QPS,613.27KB/s 每秒传输HTTP3---20%总耗时4.12s, 2424.55 req/s QPS,1.93MB/s 每秒传输HTTP1.1100ms+-1030%--总耗时30.64s, 326.42req/s QPS,289.44KB/s 每秒传输HTTP3100ms+-1030%--总耗时17.16s, 582.89 req/s QPS,474.19KB/s 每秒传输HTTP1.1-30%70%-总耗时2.03s, 4914.90 req/s QPS,4.26MB/s 每秒传输HTTP3-30%70%-总耗时3.06s, 3264.89 req/s QPS,2.59MB/s 每秒传输HTTP1.1-30%-20%慢到没后果...HTTP3-30%-20%总耗时15.09s, 662.75req/s QPS,539.16KB/s 每秒传输在这份测试后果中我给出的都是典型值,当然我也对这些值都做过大小调整看后果。从这份后果咱们能够看出如下论断: ...

July 23, 2021 · 1 min · jiezi