1、什么是HOLHOL是Head of line blocking的意思,在互联网领域,包括HTTP head of line blocking和 TCP head of line blocking 。
1.1 HTTP Head of line blocking
Wikipedia对HTTP HOL的解释如下:
文章插图
虽然HTTP/2解决了HTTP/1.1的HOL问题,但由于是建立在TCP基础上,所以仍然存在TCP层面的HOL问题 。
1.2%20TCP%20Head%20of%20line%20blocking
TCP%20HOL定义如下:
文章插图
例如在TCP接收缓冲区,请求的第一个数据包由于某种原因一直未到达,缓冲区里面的后续数据包就无法传递给上层应用,只能处于等待中,直到第一个数据包过来,才能一起传递给上层应用 。
TCP%20HOL带来的问题具有普遍性 。只要利用TCP,就有这方面的问题,因此影响范围非常广泛 。
2、案例分析2.1%20Network%20switches
文章插图
上图展示了网络交换机中不同input队列是如何因为HOL等待的 。
第一个和第三个input队列,都在竞争使用Output 4 。如果交换机选择传递第三个input队列的数据包,那么第一个input队列的数据包只能选择等待 。第一个input队列中的序号3数据包因为HOL只能等待,虽然output 3是空闲的 。
2.2 单个连接 vs 多个连接实验
下面是并发为1的吞吐量,为153.60 reqs/sec 。
文章插图
文章插图
下面是并发为10的吞吐量,为145.08 reqs/sec 。
文章插图
文章插图
这里10个并发比1个并发吞吐量还低,是因为测试环境是Docker环境,硬件配置差所导致 。
上面测试是在无丢包网络环境下进行的,那么在网络丢包情况下会怎么样?
我们模拟丢包率1%的网络环境 。
文章插图
并发为1的吞吐量下降为37.41 reqs/sec 。
文章插图
并发为10的吞吐量为132.20 reqs/sec 。
文章插图
我们发现在丢包情况下,多个并发效果更好 。这是因为多个并发情况下,HOL blocking问题得到了一定的缓解,而单个连接,则因为HOL blocking问题显得很明显 。
2.3
推荐阅读
- 地板连接处有缝隙怎么办 实木地板连接的地方产生缝隙了怎么办
- 回奶会影响月经推迟吗
- 抽烟喂奶会影响宝宝吗
- 六堡茶的保存方法
- 美国|钠离子电池15分钟快充80% 宁德时代入选“最有影响力的100家企业”
- 微信支付分,生活更便捷,但有几点需注意!甚至影响加好友
- 淘宝商品频繁改动内容有影响吗 淘宝品牌不一致对店铺的影响
- 云标签怎么打标 淘宝云标签打标后影响
- 想要茶叶保存不影响口感 储藏时要注意四个方面
- 咳出来的痰,咽进肚子里,对身体有影响吗?