加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

超高性能管线式HTTP请求(实践·原理·实现)

发布时间:2019-03-27 23:11:14 所属栏目:教程 来源:lulianqi15
导读:副标题#e# 这里的高性能指的就是网卡有多快请求发送就能有多快,基本上一般的服务器在一台客户端的压力下就会出现明显延时。 该篇实际是介绍pipe管线的原理,下面主要通过其高性能的测试实践,解析背后数据流量及原理。最后附带一个简单的实现。 实践 先直

测试数据设置如下

超高性能管线式HTTP请求(实践·原理·实现)

超高性能管线式HTTP请求(实践·原理·实现)

超高性能管线式HTTP请求(实践·原理·实现)

请求量还是10000条接收的response数据大概有326Mb 30s之内完成。基本上是网络的极限,此时cpu也基本无然后压力(100条管线,每条100个请求)。

这里其实请求是带时间戳的,因为测试时使用的是同一个时间戳,所以实际对应用服务器的影响不大,真实测试时可以为每条请求设置不同时间戳(这里是因为要演示使用了线上公开服务,测试时请使用测试服务)。

注意,这里的测试如果选择了性能较低的测试对象,大部分流量会在服务器端排队等候,导致吞吐量不大,这实际是服务器端处理过慢,与客户端关系不大。

一般情况下一台普通的pc在使用pipe进行测试时就可以让服务器出现明显延时。

原理

正常的http一般实现都是连接完成后(tcp握手)发生request流向服务器,然后及进入等待,收到response后才算结束(如下图):

超高性能管线式HTTP请求(实践·原理·实现)

当然http1.1 即支持keep alive,完成一次收发后完全可以不关闭连接使用同一个链接发生下一个请求(如下图):

超高性能管线式HTTP请求(实践·原理·实现)

这种方式对性能的提升还是比较明显的,特别早些年服务器性能有限,网络资源匮乏,RTT大(网络时延大)。不过对如今的情况,其实这些都已经不是最主要的问题了。

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读