工作笔记

HTTP 连接数与请求数

2019-09-23
阅读次数:

“今天在配置nginx预防ddos攻击时,涉及到连接数与请求数的配置,对两者的概念不是很理解。所以有必要写一篇来解释并发连接数和请求数的区别,还有两者之间的关系。”

概念

并发连接数-SBC(Simultaneous Browser Connections)

并发连接数指的是客户端向服务器发起请求,并建立了TCP连接。每秒钟服务器链接的总TCP数量,就是并发连接数。

请求数-QPS(Query Per Second)/RPS(Request Per Second)

请求数有两个缩写,可以称为QPS也可以称为RPS。单位是每秒多少请求。Qurey(查询),也相当于请求。请求数指的是客户端在建立连接后,向http服务发送get、post、head数据包,http服务返回的结果有以下两种情况:

  • response head包含Connection: close,关闭本次tcp连接
  • response head包含Connection: keep-alive,本次连接不关闭,可继续是用该连接向http服务发送请求,用于减少tcp并发连接数

服务器性能怎么测?

通常情况下,我们测试的是QPS,即每秒请求数。不过为了衡量服务器的整体性能,测试时最好连并发连接数一起测试。

测试原理

  • 测试并发连接数,采取每个并发一请求,多个并发进行
  • 测试请求数采用多并发,每个并发多请求进行,总的请求数=并发连接数*单并发请求数,需要注意的是不同的并发和单并发请求数得出来的结果会不同,因此最好测试多次取平均值。

区分请求数意义何在

以Chrome为例,假设服务器设置的是close(非持久连接),游览器打开网页后,首先打开4个并发加载数据,在这些请求完成后,关闭四个连接,重新打开四个并发连接加载数据。也就是说,并不是网页有100个请求,游览器就会产生100个并发,而是四个并发连接并行。假设服务器设置的是keep-alive(持久连接),游览器打开网页,首先打开四个并发加载数据,在这些请求完成后不关闭连接,而是继续发出请求,节省重新建立连接的时间

主机到底能多少人在线?

看到这里相信你已经知道答案了,这个问题无解,根据网页的内容大小和单网页的请求数和服务器的配置而定,这个数据的浮动值非常大所以无法测量。因此能承诺保证多少用户在线就是坑爹的主机商!

并发用户

并发用户数量,有两种常见的错误观点。一种错误观点是把并发用户数量理解为使用系统的全部用户的数量,理由是这些用户可能同时使用系统;还有一种比较接近正确的观点是把用户在线数量理解为并发用户数量。实际上,在线用户不一定会和其他用户发生并发,例如正在浏览网页的用户,对服务器是没有任何影响的。但是,用户在线数量是统计并发用户数量的主要依据之一。 并发主要是针对服务器而言,是否并发的关键是看用户操作是否对服务器产生了影响。因此,并发用户数量的正确理解为:在同一时刻与服务器进行了交互的在线用户数量。这些用户的最大特征是和服务器产生了交互,这种交互既可以是单向的传输数据,也可以是双向的传送数据。 并发用户数量的统计的方法目前还没有准确的公式,因为不同系统会有不同的并发特点。例如OA系统统计并发用户数量的经验公式为:使用系统用户数量*(5%~20%)。对于这个公式是没有必要拘泥于计算的结果,因为为了保证系统的扩展空间,测试时的并发用户数量要稍微大一些,除非是要测试系统能承载的最大并发用户数量。举例说明:如果一个OA系统的期望用户为1000个,只要测试出系统能支持200个并发用户就可以了。


下一篇 Http keep-alive

评论

目录