如何计算监测数据的百分比

如何计算监测数据的百分比

简介

监测在线系统,尤其是数据密集型的系统,对于持续的健康检查、分析和检测停机时间以及提高性能是极其重要的。基于百分位数的方法是一种非常有效的技术来衡量这种系统的行为。让我们来看看这个方法。

一般复习

什么是百分位数,为什么它们是有用的?

在统计学中,表示某组观察值低于该值的数值被称为百分位数或百分位数。例如,对于一个学生来说,如果他/她得了90分的百分位数,这意味着90%的学生的分数都低于他。另一个例子是,如果一个HTTP请求的响应时间是90百分位数,这意味着90%的响应值都在它之下。

25个百分位数和75个百分位数之间的观察范围被称为四分位数范围。

第25个百分位数也被称为第1个四分位数,第50个百分位数为第2个四分位数,第75个百分位数为第3个四分位数。

当我们想知道一个数值相对于其他观测值的位置时,百分比是非常有用的。这可以通过数值的分布图来实现。有各种统计学术语,如平均数、中位数和模式与之相关。

如何计算监测数据的百分比?

计算百分位数的公式可以给定为

如何计算监测数据的百分比?

其中,P=百分位数,N=数据集中按升序排序的数值数,n=固定序数。

监测数据密集型系统 – 计算百分位数

在监测任务中,我们主要使用百分比法。其他方法,如平均法,受离群值的影响很大。在在线系统中,收集器被用来收集数据和计算数据的量值。

一个共同的方法

在HTTP请求监测的情况下,请求周期可以被划分为量值。一个特定的四分位数比如(φ50)可以说是一个不能超过50%概率的随机值。假设HTTP请求的数据流包含n个元素,那么我们需要找到一个有φ 𝑥 𝑛 的元素,这个元素的大小可以是1GB。

解决这个问题的方法是计算数据流的近似量值。在这种方法中,整个数据流被压缩成一组段。每个段有一个固定的宽度 ( 𝑤 ) 和每个段的长度 ( l )

如何计算监测数据的百分比?

活体捕获数据的百分比 –

例如,假设我们想在某个特定的时间点在内存中存储1000个值。

让我们选择k=100的大小,同时选择最小宽度(分辨率)为1ms。

第一组数值在0到1ms之间 ( w = 1ms)

并且,

Second bin – 1至3ms(宽度=2ms)。

Third bin – 3至7毫秒(宽度=4毫秒)。

**till 10th bin ** – 511至1023毫秒(宽度=512毫秒)。

计算方式

  • 为我们的响应时间创建仓(例如,0到100ms,100ms到200ms,200ms到400ms……)。

  • 计算有多少个回应,以及每个仓内的回应数量。

  • 将bin计数器相加,直到总和超过总数的n%,以计算出第n个百分点。

Python中伪代码

示例

def increment(millis):
   i = index(millis)
   if i < len(_limits):
      _counts[i] += 1

   _total+=1;

def estimate_percentile(percentile):
   if percentile < 0.0 or percentile > 100.0 :
      print("percentile must be between 0.0 and 100.0, was " + percentile)
      return "Error"

   if percentile - p.get_percentage() <= 0.0001): 
      return get_limit()

总结

性能监测和健康检查是当今每个数据密集型应用程序的关键。基于百分位数的方法在这一领域卓有成效,并被证明是当前情况下的有用工具。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程