qps

海鲜小王子 海鲜小王子     2022-12-13     427

关键词:

题目

有一个消息队列集群,集群里每台Broker的响应时间RT都不一样,但是每台Broker的极限服务QPS都是一样的,超过这个QPS会出现过载雪崩。而消息的生产者客户端,每次发送都会选择其中的一台broker来发送,一般来说发送逻辑是运行在一个线程池里面。假设cpu资源充足,通过实现一个负载均衡算法,使得生产者能够达到最大吞吐量,最优的平均响应时间,但是又不能把任何一台服务器压垮。已知每个broker的rt、极限qps,消息生产者的线程数量,请求总数,如果采用吞吐量最优的算法,求处理完所有请求需要的耗时,单位毫秒。
概念说明:
QPS:query per second, 每秒请求量
RT:response time,请求的响应时间(单位为ms)
Broker:消息队列的服务器

背景知识

有一个重要的公式:

QPS(/s)=(s)

每台服务器都有一个最大的QPS,服务器的响应时间的倒数是1台客户访问时,每秒服务器可以处理的事务数。当有多个客户进行访问的话,服务器就会开多个线程(进程),在每个线程(进程)中,响应时间不会有太大变化(在客户数不多的情况下),那么QPS就可以随着并发数的增加而增加了。但凡事都有个度,当并发数增加到一定时,响应时间就会明显增加了。线程(进程)变多了,服务器花费在调度上的时间比例就增加了。



在真实情况下,响应时间可以根据业务情况进行估算。比如对于人们浏览一个网站,响应时间100ms和500ms是没有区别的。根据QPS的公式,在服务器最大QPS不变的情况下,增大响应时间可以增大并发数,就是一台服务器可以服务更多的客户,从而减少服务器成本。

回到题目

题目中已经给出了main()函数,我们需要完成doneTime()函数。对于题目中给出的例子,共有10个线程,5个服务器。我原本以为只有一个客户端,最多只能有10个线程,后来发现并不是这样的。我们可以5个客户端50个线程一起去访问5个服务器。那么对于每个服务器,响应时间和并发数都已知,那么QPS就可以计算出来,若QPS太大,就取QPS的上限。将5个QPS相加,就是这个集群的QPS。请求总数除以集群的QPS就是花费的时间。
按照自己的理解,画出题目中的例子表达图,有利于理解情景。



import java.util.Scanner;

public class Main 

    public static void main(String[] args)  
        Scanner in = new Scanner(System.in);
        int maxQps= Integer.valueOf(in.nextLine());
        final String[] rtList = in.nextLine().split(",");
        final int requestNum = Integer.valueOf(in.nextLine());
        final int threadNum = Integer.valueOf(in.nextLine());
        System.out.println(doneTime(maxQps, rtList, requestNum, threadNum));
    
    /**
     * 如果使用最优的最大吞吐量负载均衡算法,按照最优模型多久能够处理完所有请求,单位毫秒。
     * @return
     */
    static long doneTime(int maxQps,String[] rtList,int requestNum,int threadNum) 
        //TODO
        int qpsSum = 0;
        for (String rtString : rtList) 
            int singleMaxQps = threadNum * 1000 / Integer.valueOf(rtString);
            if (singleMaxQps > maxQps) 
                qpsSum += maxQps;
            else 
                qpsSum += singleMaxQps;
            
        

        return requestNum / qpsSum * 1000;
    

【Reference】
http://www.cnblogs.com/zhulin-jun/p/6597074.html
https://dearhwj.gitbooks.io/itbook/content/test/performance_test_qps_tps.html

什么是qps,pv

术语说明:QPS=req/sec=请求数/秒【QPS计算PV和机器的方式】QPS统计方式[一般使用http_load进行统计]QPS=总请求数/(进程总数*请求时间)QPS:单个进程每秒请求服务器的成功次数单台服务器每天PV计算公式1:每天总PV=QPS*3600*6公式2:每天... 查看详情

并发数qps

并发数=QPS*平均响应时间QPS(TPS):每秒钟request 每秒查询率QPS:对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,即每秒请求数,即最大谈吐能力。并发数:并发数和QPS是不同的概念,一般说QPS会说多少并... 查看详情

并发数=qps*平均响应时间

转:https://blog.csdn.net/luman1991/article/details/70919279并发数=QPS*平均响应时间QPS(TPS):每秒钟request 每秒查询率QPS:对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,即每秒请求数,即最大谈吐能力。并发数:... 查看详情

00|qps

每秒查询率QPSQueryPerSecond某个查询服务器在规定时间内处理了多少流量对应的fetches/sec,即每秒响应请求数,就是最大吞吐量原理:每天80%的访问集中在20%的时间中,这20%的时间叫做峰值时间公式:(总pv*80%)/(每天秒数*20%)=峰值时... 查看详情

pvtpsqps计算公式(转)

英文解释:PV=pageviewTPS=transactionspersecondQPS=queriespersecondRPS=requestspersecondRPS=并发数/平均响应时间 术语说明:QPS=req/sec=请求数/秒【QPS计算PV和机器的方式】QPS统计方式[一般使用http_load进行统计]QPS=总请求数/(进程总数*请求时间)Q... 查看详情

pvtpsqps是怎么计算出来的?

QPS=req/sec=请求数/秒【QPS计算PV和机器的方式】QPS统计方式[一般使用http_load进行统计]QPS=总请求数/(进程总数*请求时间)QPS:单个进程每秒请求服务器的成功次数单台服务器每天PV计算公式1:每天总PV=QPS*3600*6公式2:每天总PV=QPS*3600*8... 查看详情

qps的计算方法

每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。原理:每天80%的访问集中在20%的时间里,这20%时间叫做峰值时间公式... 查看详情

最佳线程数和qps以及rt

最近学习性能优化方面的东西,所以,总结一下:名词解释QPS:系统每秒处理的请求数(querypersecond)RT:系统的响应时间,一个请求的响应时间,也可以是一段时间的平均值.最佳线程数:刚好消耗完服务器瓶颈资源的临界线程数.QPS和RT的关系... 查看详情

tps/qps

有很多人,自己TPS和QPS的关系都搞不清。如下为基本的查询方式是,与计算公式!拿走不谢!MariaDB[(none)]>showglobalstatuslike‘questions‘;+---------------+----------+|Variable_name|Value|+---------------+----------+|Questions|70991770|+------ 查看详情

qps(tps)

  QPS:QueryPerSecond。每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。  因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。对应fetches/sec,即每秒的响应请求数,也即是... 查看详情

qps/tps简介

...统吞吐能力越低,反之越高。系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间QPS(TPS):每秒钟request/事务数量并发数:系统同时处理的request/事务数响应时间:一般取平均响应时间QPS(TPS)=并发数 查看详情

如何使用 gatling 进行 10000 QPS 的负载测试

】如何使用gatling进行10000QPS的负载测试【英文标题】:HOWtodoLoadtestingusinggatlingfor10000QPS【发布时间】:2020-01-2402:08:08【问题描述】:gatling是负载测试的绝佳工具。在探索它的同时,我们如何使用gatling进行10000QPS的扩展和负载测试... 查看详情

面试官之问:知道你的接口“qps”是多少吗?怎么办

参考技术AQPS是什么我们先回忆一下,QPS的概念如下所示:QPS(QueryPerSecond):每秒请求数,就是说服务器在一秒的时间内处理了多少个请求。那我们怎么估出每秒钟能处理多少请求呢?OK,用日志来估计!那日志怎么记录呢此时,... 查看详情

服务器一般达到多少qps比较好

...bsp;公式:(总PV数*80%)/(每天秒数*20%)=峰值时间每秒请求数(QPS)。机器:峰值时间每秒QPS/单台机器的QPS=需要的机器。每天300wPV的在单台机器上,这台机器需要多少QPS? (3000000*0.8)/(86400*0.2)=139(QPS)。一般需要达到139QPS,因为是峰... 查看详情

计算并发和qps:

计算并发和qps:假如你的网络服务的工作线程个数如果为24个,另外,单个请求耗时大概100ms,那么,你的并发是24个;你的qps可以达到240个,也就是一秒处理的任务数目(每个任务都被在100ms内被处理完成);有时,为了提高qps,... 查看详情

qps是啥

qps即每秒查询率,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。因特网上,经常用每秒查询率来衡量域名系统服务器的机器的性能,即为QPS。对应fetches/sec,即每秒的响应请求数,也即是最大吞吐能力。... 查看详情

qps

...roker的响应时间RT都不一样,但是每台Broker的极限服务QPS都是一样的,超过这个QPS会出现过载雪崩。而消息的生产者客户端,每次发送都会选择其中的一台broker来发送,一般来说发送逻辑是运行在一个线程池里面。... 查看详情

揭露qps增高后的秘密

导读很多人在实际的开发中害怕系统的QPS增高,因为觉得QPS太高会导致系统挂掉;基于这种心理会想着尽量的降低系统的请求量,甚至有人会将很多处理放置到服务中来处理,这样外部发一起请求,服务就把所有的业务处理完了... 查看详情