这篇文章还是关于fuload项目的问题,由于压力测试的结果最后是要给出可视化统计曲线及饼图的,所以这里就涉及到数据上报时间,格式,以及绘制算法的问题。
饼图比较简单,我们这里主要看调用时间的曲线图。
我们采用自顶向下的方法来分析,先分别来看输入和输出。
前提

  • 有多台机器(称为从机),同时想远程机器上报,由远程机器(称为主机)统一绘制。

输入

  • 一段时间内(如5分钟):起始时间,结束时间,总的调用时间,调用次数,平均调用时间。

输出

  • 根据平均响应时间,绘制时间为横轴,调用时间为纵轴的走势曲线图。

这里主要有几个难点

  • 1.对于这“一段时间”来说,每台从机是不一样的,即可能A机器报了7点5分~7点10分的数据,而B机器报了7点7分到7点12分的数据,也可以理解为主机端接收到每台从机上报数据时间点是不统一的。要解决这个问题,我们可以通过对上报数据做分片的处理,简单来说,既然我们选择了5分钟上报一次,那么统计图的X轴一定是5分钟一个统计点,比如拿7点5分~7点10分这段时间来说,7点7分~7点12分的数据有3/5落在了这个时间段(具体计算可以更精确),另外有2/5落在了7点10分~7点15分,这样统计曲线就可以绘制出来了。
  • 2.相信从机时间还是主机时间。虽然每台从机都将自己的时间起始终止点报上来了,但是我们是否应该相信呢。如果我们选择相信,这里有一个风险就是每台从机之间及和主机之间可能时间不一致。但如果统一按照主机时间,则必须保证从机在收集完数据之后立即上传到主机,防止滞后。

这样解决方案就比较清楚了,我们来复述一下:

  • a)从机上报格式为:
    • 起始时间(暂时无用)
    • 结束时间(暂时无用)
    • 总调用时间
    • 调用次数
  • b)主机接收到数据之后,将数据按时间段分片。见上面的难点的第1条。

这只是今晚总结的一个思路,等代码开始写之后,再将绘制的图表发上来。

暂无相关产品

发表评论