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

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

在升高c的过程中,不得不注意的一点是,线程/进程数越多,上下文切换、线程/进程调度开销会增大,这会显著间接地增大t的值从而不能让q跟着c的值等比升高, 所以一味增大c通常也不会有好结果,最合适的c值应该根据实测试验得出

另外,还有一种特殊情况:若业务决定了该服务器提供的服务具有“小数据量、较长返回时间”的特征,即这是一个不忙、但很慢的业务类型,那么可以采用NIO模式提供服务,比如nginx默认就采用nio模式; 
在这种模式下,c值不再与线程/进程数相关,而仅仅与“socket连接数”相关,通常“socket连接数”可以非常大,在经过特殊配置的linux服务器上,可以同时支撑百万级别的socket连接数,在这种情况下c可以达到100w; 
在如此高的c值之下,就算t再大,也可以支撑出一个很高的q,同时真正的线程/进程数可以只开到跟cpu核数一致,以求最大化cpu利用率; 
当然这一切的前提是该业务具有“小数据量、较长返回时间”的特征

并发量是当前保持的连接数

netstat -ntp | grep -i "6661" | wc -l
(No info could be read for "-p": geteuid()=512 but you should be root.)
89

原文地址:https://www.cnblogs.com/austinspark-jessylu/p/9414464.html

时间: 2024-10-13 08:17:02

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

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

并发连接数.请求数.并发用户数 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)

Nginx如何限制每个客户端每秒处理请求数

nginx.conf 演示: limit_req_zone $binary_remote_addr zone=one:10m rate=2r/m;#以用户IP作为key 开辟共享内存10M 并且限制每分钟2个请求 server { listen 8090;#监听端口 root html/; location / { limit_conn_status 500;#定义向用户返回的错误码 500 limit_conn_log_level warn; #错误等级 #limit_rate 50;#向用户

查看 并发请求数及其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

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

下面先看一下各个浏览器的并发请求数限制: 通过并发数的限制衍生了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 $

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

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

浏览器同域名请求的最大并发数限制

当我们在浏览网页的时候,对浏览速度有一个重要的影响因素,就是浏览器的并发数量.并发数量简单通俗的讲就是,当浏览器网页的时候同时工作的进行数量. 如果同时只有2个并发连接数数量,那网页打开的时候只能依赖于这2条线程,前面如果有打开慢的内容,就会直接影响到后面的内容打开.但是如果同时有更多的并发连接数,这样就会大大的提高网页加载速度.详情可查看我们之前发布的文章:并发连接数对浏览器加载速度的测试.浏览器的并发连接数也并非越大越好. 下表概括了基于主机上运行的IE浏览器的版本的最大并发连接数.主机的连

用go写爬虫服务并发请求,限制并发数

java写爬虫服务,思路是线程池,任务队列,限制并行线程数即可. go要用另一种设计思路,不能在线程层面限制,协程的异步请求,如果不作处理,并行发出所有网络请求,因网络请求数过多,会抛出异常 低版本的go可以并行执行map的操作,高版本会报异常,需要把map改为array,改起来很简单 func updateAllShowTimePeople() { //得到要请求的url,多批次请求 allurls := getShowTimeTypeIndexFromDB() //要请求的任务总数 allu