术语:
QPS(Query Per Second)意思为"每秒查询率",是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。同时也代表一种计算机编程语言,用户数据分析和报表产出。
计算方法:
OPS统计方式[一般使用http_load进行统计]
QPS=总请求数/(进程总数*请求时间)
每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,在因特网上,作为域名系统服务器的机器的性能经常能通每秒查询率来衡量。对应fetches/sec,即每秒的响应请求数,也即是最大吞吐能力。
决定因素:
一个系统的吞吐量通常由QPS(TPS),并发数两个因素决定,每套系统这两个值都有一个相对极限值,在应用场景访问压力下,只要某一项达到系统最高值系统的吞吐量就上不去了,如果压力继续增大,系统的吞吐量反而会下降,原因是系统超负荷工作,上下文切换,内存等等其它消耗导致系统性能下降。
决定系统响应时间要素
我们做项目要排计划,可以多人同时并发做多项任务,也可以一个人活着多个人串行工作,始终会有一条关键路径,这条路径就是项目的工期。
系统一次调用的响应时间跟项目计划一样,也有一条关键路径,这个关键路径是就是系统影响时间;
关键路径是有CPU运算、IO、外部系统响应等等组成。
并发和并行的区别?
什么是并发?
并发:指应用能够交替执行不同的任务,其实并发有点类似多线程的原理,多线程并非是同时执行多个任务,如果你开两个线程执行,就是在你几乎不可能察觉到的速度不断去切换这两个任务,已达到"同时执行效果",其实并不是的,只是计算机的速度太快,我们无法察觉到而已。
什么是并行?
并行:指应用能够同时执行不同的任务,例:吃饭的时候可以边吃饭边打电话,这两件事情可以同时执行
两者区别:
一个是交替执行,一个是同时执行
一、什么是高并发?
1.概念:
高并发意味着大流量,需要运用技术手段抵抗流量的冲击,这些手段好比操作流量,能让流量更平稳地被系统所处理,带给用户更好的体验。
高并发使用场景:
淘宝的双双十一、春运时的抢票、微博大V的热点新闻等。除了这些典型事情,每秒几十万请求的秒杀系统、每天千万级的订单系统、每天亿级日活的信息流系统等,都可以归位高并发。
QPS是什么意思?一般的服务器QPS多少?
QPS即每秒查询率,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。
每秒查询率
因特网上,进程用每秒查询率来衡量域名系统服务器的机器的性能,即为QPS。
对应ftches/sec,即每秒的响应请求数,也即是最大吞吐能力。
计算关系:
QPS=并发量/平均响应时间
并发量=QPS*平均响应时间
原理:每天80%的访问几种在20%的时间里,这20%时间叫做峰值时间。
公式:(总PV数,80%)/(每天描述20%)=峰值时间每秒请求数(QPS)。
机器:峰值时间每秒QPS/单台机器的QPS=需要的机器。
案例分析:
每天300w PV在单台机器上,这台机器需要多少QPS?
(3000000 * 0.8)/(86400*0.2)=139(QPS)。
一般需要达到139QPS,因为是峰值。
问:如果一台机器的QPS是58,需要几台机器来支持?
答:139/58=3
注:①.高并发不能只看数字,要看具体的业务场景。不能说10W QPS的秒杀是高并发,而1WOPS的信息流就不是高并发。信息流场景涉及复杂的推荐模型和各种人工策略,它的业务逻辑可能比秒杀场景复杂10倍不止。因此,不在同一纬度,没有任何比较意义。 ②.业务都是从0到1做起来的,并发量和QPS只是参考指标,最重要的是:在业务量逐渐变成原来的10倍、100倍的过程中,你是否用到了高并发的处理方法去严禁你的系统,从架构到设计、编码实现、甚至产品方案等维度去预防和解决高并发引起的问题?而不是一味的升级硬件、加机器做的水平扩展。