并发连接数、请求数、并发用户数

并发连接数、请求数、并发用户数

http://www.4wei.cn/archives/1002399

by 尘缘 on 十一月 14th, 2014 // Filed Under → Nginx

概念

并发连接数-SBC(Simultaneous Browser Connections

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

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

请求数有2个缩写,可以叫QPS也可以叫RPS。单位是每秒多少请求。Query=查询,也相当于请求。请求数指的是客户端在建立完连接后,向http服务发出GET/POST/HEAD数据包,服务器返回了请求结果后有两种情况:

  • http数据包头包含Close字样,关闭本次TCP连接;
  • http数据包头包含Keep-Alive字样,本次连接不关闭,可继续通过该连接继续向http服务发送请求,用于减少TCP并发连接数。

服务器性能怎么测?

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

测试原理

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

区分请求数意义何在?

大家打开Chrome浏览器,按下F12,切换到Network选项卡,随便打开一个网页,按下F5刷新,将会看到刷刷一堆的请求。这里给出某大牛收集来的不同浏览器产生的单站点并发连接数:

浏览器 HTTP 1.1 HTTP 1.0
IE 6,7 2 4
IE 8 6 6
Firefox 2 2 8
Firefox 3 6 6
Safari 3, 4 4 4
Chrome 1,2 6 ?
Chrome 3 4 4
Opera 9.63,10.00alpha 4 4

以Chrome为例,假设服务器设置的是Close(非持久连接),浏览器打开网页后,首先打开4个并发加载数据,在这些请求完成后关闭4个连接, 再打开4个并发连接加载数据。也就是说,并不是这个网页有100个请求就会产生100并发,而是4个并发连接并行。假设服务器设置的是keep- alive(持久连接),浏览器打开网页后,首先打开4个并发加载数据,在这些请求完成后不关闭连接,而是继续发出请求,节约重新打开连接的时间。【前面 红色标出的是keep-alive持久连接和close非持久的区别,持久连接除了Squid(这货用了特殊方法在http 1.0实现持久连接),只在http 1.1协议中有效!】

主机到底能多少人在线?

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

并发用户

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

1

时间: 2024-11-04 22:45:10

并发连接数、请求数、并发用户数的相关文章

系统的平均并发用户数和并发数峰值如何估算

一.经典公式1: 一般来说,利用以下经验公式进行估算系统的平均并发用户数和峰值数据 1)平均并发用户数为 C = nL/T 2)并发用户数峰值 C' = C + 3*根号C C是平均并发用户数,n是login session的数量,L是login session的平均长度,T是值考察的时间长度 C'是并发用户数峰值 举例1,假设系统A,该系统有3000个用户,平均每天大概有400个用户要访问该系统(可以从系统日志从获得),对于一个典型用户来说,一天之内用户从登陆到退出的平均时间为4小时,而在一天

Apache的工作模式和最大并发请求数设置

http://blog.csdn.net/hxsstar/article/details/18699045 什么是apache的工作模式? 个人理解:apache的工作模式就是apache在运行时候的内存分配,进程和线程的使用方式.举个例子:一台apache正在运行的服务器,如果有个用户访问这个apache,那么apache是启用一个进程来处理用户的请求呢?还是在已有的进程中启用一个线程来处理该用户的请求?这个选择就是 apache的工作模式来确定的.如果指定了某个工作模式比如prefork模式

查看 并发请求数及其TCP连接状态

服务器上的一些统计数据: 1)统计80端口连接数netstat -nat|grep -i "80"|wc -l 2)统计httpd协议连接数ps -ef|grep httpd|wc -l 3).统计已连接上的,状态为"establishednetstat -na|grep ESTABLISHED|wc -l 4).查出哪个IP地址连接最多,将其封了.netstat -na|grep ESTABLISHED|awk {print $5}|awk -F: {print $1}|s

查看Apache当前的并发请求数

我们调优常常要查看httpd进程数(即prefork模式下Apache能够处理的并发请求数): Linux命令: ps -ef | grep httpd | wc -l 出现的结果,就是当前Apache能够处理的多少个并发请求,这个值Apache将根据负载情况自动调节 #  ps -ef | grep httpd | wc -l27 ps -ef是查看所有的进程,然后通过grep筛选出你要的进程信息 参数说明:-e 显示所有进程,-f 全格式. #  ps -ef | grep httpd 参数

查看http的并发请求数及其TCP连接状态

统计80端口的连接数据 netstat -nat | grep -i "80" | wc -l 统计httpd协议连接数 ps -ef | grep httpd | wc -l 统计已连接的,状态为establish的 netstat -na | greo ESTABLISH | wc -l 查出那个IP连接最多,并将其封掉 netstat -na | grep ESTABLISH | awk {print $5} | awk -F:{print $1}| sort | uniq -c

关于浏览器并发请求数的研究及优化

下面先看一下各个浏览器的并发请求数限制: 通过并发数的限制衍生了domain hash, cookie free. 按照普通设计,当网站cookie信息有1 KB.网站首页共150个资源时,用户在请求过程中需要发送150 KB的cookie信息,在512 Kbps的常见上行带宽下,需要长达3秒左右才能全部发送完毕. 尽管这个过程可以和页面下载不同资源的时间并发,但毕竟对速度造成了影响. 而且这些信息在js/css/images/flash等静态资源上,几乎是没有任何必要的. 解决方案是启用和主站

和浏览器并发请求数有关的一些前端技术

节选自 http://www.zhihu.com/question/20474326 前端技术的逐渐成熟,衍生了domain hash, cookie free, css sprites, js/css combine, max expires time, loading images on demand等技术.这些技术的出现和大量使用都和并发资源数有关. 1.按照普通设计,当网站cookie信息有1 KB.网站首页共150个资源时,用户在请求过程中需要发送150 KB的cookie信息,在51

查看并发请求数及其TCP连接状态

服务器上的一些统计数据: 1)统计80端口连接数 netstat -nat|grep -i "80"|wc -l 2)统计httpd协议连接数 ps -ef|grep httpd|wc -l 3).统计已连接上的,状态为"established netstat -na|grep ESTABLISHED|wc -l 4).查出哪个IP地址连接最多,将其封了. netstat -na|grep ESTABLISHED|awk {print $5}|awk -F: {print $

每秒处理请求数和并发的关系

设平均响应时间为t(单位为毫秒), 并发量为c,每秒处理请求数为q,则: q = (1000/t) * c 就是这个关系: 想要升高q,就只有两条路:1) 降低t 2) 升高c 对于'1', 只能靠优化代码实现,只能尽量做,往往提升有限: 对于'2', 通常c与你服务器程序的请求处理模型有关,如果你服务器程序是"一个线程对应一个请求"的模式,那么c的最大值就受制于你能支撑多少个线程:如果是"一个进程对应一个请求"的模式,那么c的最大值则受制于最大进程数: 在升高c的