requests per second 多大才合格

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了requests per second 多大才合格相关的知识,希望对你有一定的参考价值。

参考技术A 游戏魔兽里的用词
通常缩写为DPS
DAMAGE伤害
PER SECOND每秒

DPS:Damage Per Second,原意是 "每秒伤害输出值" ,现在泛指提供伤害的玩家
  
其他还有
FD:Feign Death 假死,装死。武道家分支的职业都会这个
OOM:Out of Mana 魔法值不足本回答被提问者和网友采纳

Hbase源码分析:Hbase UI中Requests Per Second的具体含义

  让运维加监控,被问到Requests Per Second(见下图)的具体含义是什么?我一时竟回答不上来,虽然大概知道它是指每秒Region Server的请求数,但是具体是怎么算的呢,不清楚。于是决定通过研究源码深入了解下。下面便记录了这个过程。

技术分享

1,先在代码库中全局搜索Requests Per Second关键字,发现在几个jamon结尾的文件找到了。于是google了一下,这个到底是什么东东,发现是一个模板引擎。

技术分享

2,查看RegionServerListTmpl.jamon内容,需要传入参数List<ServerName> servers和HMaster master。并且这个模板引擎是在MasterStatusServlet.java的doGet方法中被render的。抛开这些,看下面一段代码,就知道Requests Per Second是怎么来的呢?

技术分享
 1 <%java>
 2     int totalRegions = 0;
 3     int totalRequests = 0;
 4     for (ServerName serverName: serverNames) {
 5 
 6     ServerLoad sl = master.getServerManager().getLoad(serverName);
 7     double requestsPerSecond = 0.0;
 8     int numRegionsOnline = 0;
 9 
10     if (sl != null) {
11         requestsPerSecond = sl.getRequestsPerSecond();
12         numRegionsOnline = sl.getNumberOfRegions();
13         totalRegions += sl.getNumberOfRegions();
14         // Is this correct?  Adding a rate to a measure.
15         totalRequests += sl.getNumberOfRequests();
16     }
17     long startcode = serverName.getStartcode();
18 </%java>
技术分享

其中requestsPerSecond变量的值就是我们要找的。可以看出来是来自ServerLoad中的getRequestsPerSecond函数。

3,继续查看ServerLoad中的getRequestsPerSecond函数,经过getRequestsPerSecond-》getNumberofRequests发现是serverLoad.getNumberOfRequests中的numberOfRequests_变量的值。

4,  那ClusterStatusProtos.ServerLoad中的numberOfRequests_是怎么来的呢?在HRegionServer中buildServerLoad函数中,可以看到是从MetricsRegionServerWrapperImpl中的requestsPerSecond获取的

1 serverLoad.setNumberOfRequests((int) regionServerWrapper.getRequestsPerSecond());

5,那MetricsRegionServerWrapperImpl中的requestsPerSecond是怎么算的呢?从下面代码可以看出是根据上次的总的请求次数和请求时间,以及当前总的请求次数和请求时间,通过相减,然后除以时间差计算出来的。

技术分享
if (lastRan == 0) {
        lastRan = currentTime - period;
      }


      //If we‘ve time traveled keep the last requests per second.
      if ((currentTime - lastRan) > 0) {
        long currentRequestCount = getTotalRequestCount();
        requestsPerSecond = (currentRequestCount - lastRequestCount) /
            ((currentTime - lastRan) / 1000.0);
        lastRequestCount = currentRequestCount;
      }
      lastRan = currentTime;    
技术分享

6,getTotalRequestCount()返回的是regionServer.rpcServices.requestCount的值。而requestCount表示的是regionserver中rpcserver记录的rpc请求次数,每当一个rpc请求(比方说flush,getOnlineRegion等)过来的时候,这个值便会加1. 至此,便很清楚了,Requests Per Second具体的含义就是当前region server中每秒接收到的rpc请求数。

小结:

通过以上分析过程,搞清楚了Requests Per Second的具体含义,感觉结果不是很重要,重要的是过程,通过查看,调试源码深入了解hbase的细节。

以上是关于requests per second 多大才合格的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Core – 2300% More Requests Served Per Second

Hbase源码分析:Hbase UI中Requests Per Second的具体含义

Hbase源码分析:Hbase UI中Requests Per Second的具体含义

吃鸡出现 the distribution exceeded the limit on requests per second啥意思

如何计算Hits per second

获取clock ticks per second