使用SLS和ODPS进行系统的性能分析

  • 时间:
  • 浏览:2

好的,终于还时要刚开始正式进行性能分析啦。亲戚亲戚亲们儿用的工具是专业的数据分析工具R语言。

19.6%

SLS大大降低了分布式系统下的性能日志的分类分类整理和查询的成本,而ODPS强大的离线数据分析和避免能力则使大规模性能数据的避免成为了事先。这有有兩个 工具为亲戚亲戚亲们儿打开了一扇系统级的性能分析的大门。

亲戚亲戚亲们儿先将并都有数据分成两每项,一每项是0点到1点的数据,另一每项是1点到2点的数据。使用如下的命令塞进data_ext_0和data_ext_1有有兩个 数据框中:

亲戚亲戚亲们儿先使用ODPS强大的数据避免能力按照分钟粒度来准备数据,再分类整理一下时间表示,改为相对时间:



以后就拿到了15台机器有有兩个 小时内每分钟的平均请求到达率(QPS)和平均请求延时数据。亲戚亲戚亲们儿先看下哪几个机器在不一同间上的请求到达率的变化:

21.8%

19.7%

亲戚亲戚亲们儿还时要看得人最服从Poisson分布的机器是xxx.xx.10.45,标准差值有12.7%,事先相当不错了。而偏差最大的则是机器xxx.xx.10.47,标准差事先达到了32.8%。注意到xxx.xx.10.47这台机器一同也是热度最高的一台机器,这么并都有数据暗示亲戚亲戚亲们儿有事先是亲戚亲戚亲们儿的系统设计的发生问题好,以致相同的一批请求连续访问了某台机器,造成了热点的不均衡

作者:陈昕

导入成功后就还时要在ODPS中查到性能数据,如图:

18.9%

实在以后,但亲戚亲戚亲们儿还时要发扬DIY精神,卷起袖子我个人所有所有来做以后的性能分析。通过简单日志服务(SLS)对性能日志进行分类分类整理,并使用SLS的离线通道将性能相关的数据导入ODPS中,再搞掂专业的数据分析工具R语言,就有利于做任意的性能分析了。只有想只有,这么做只有!

17.2%

实在有利于看出QPS和延时之间是有一定的相关关系的,这么亲戚亲戚亲们儿就会进一步问:这两者之间的关系算不算有利于被定量地描述呢?

在R中,还时要使用函数lm来进行线性回归。为了展示方便,亲戚亲戚亲们儿把延时的单位从us转换为ms,进行回归:

并都有数据与0-1点的数据做比较后,发现不同机器的请求时间独立性各有增高或降低。尤其是xxx.xx.10.47这台重点机器,在热度降低后,请求间独立性加强了,事先意味着或多或少连续的访问被调度到了或多或少的机器上

得到的结果的格式如下:

以后是1-2点的数据:

16.1%

再看下哪几个机器在不一同间上的请求延时的变化:

P.S. 上文中一定有或多或少错误,还请各位大拿拍砖。

图上还还时要基本看出,与0-1点的到达率相比,1-2点大每项机器的密度图一定会 不同程度的右移,这意味着大每项机器的请求到达率有所提升。而0-1点到达率最高的有有兩个 机器(也以后xxx.xx.10.47),反而在1-2点的事先请求到达率有一定程度的下降。

在对计算机系统,尤其是分布式系统的搭建和验证过程中,性能因素是时要着重考虑的因素之一。更激进或多或少说,判断分类整理的正确算不算,性能的好坏、算不算可控、算不算可预期绝对是最有效的衡量指标。

本节的分析说明了简单线性模型难以刻画系统的延时及其决定因素。既然延时对系统这么重要,是一定会 还有别的法律方法来深挖决定系统延时的因素呢?答案是肯定的,比如亲戚亲戚亲们儿还时要分类分类整理更多的数据,进行多元线性回归; 事先还时要假设不同自变量对因变量的影响不一定是一次的,而有事先是二次的、三次的,以后的多项式回归等。甚至使用各种非线性回归法律方法以及或多或少的分析法律方法。

18.3%

17.9%

上述日志中记录了当时的时间点、请求类型、请求到达的时间点、在队列中等待时间的时间、系统避免并都有请求的时间等有用的信息。

19.3%

16.1%

比较这两组数据,有利于看得人机器xxx.xx.10.10、xxx.xx.10.32、xxx.xx.10.36、xxx.xx.10.37、xxx.xx.10.42、xxx.xx.10.44、xxx.xx.10.46请求平均到达率有不同程度的提升,除了xxx.xx.10.47这台机器外,其余机器的到达率的热度或多或少微下降。xxx.xx.10.47这台机器的热度下降明显(从平均每秒到达386.26个请求降到了平均每秒到达265.7兩个请求),但这台机器依然是热度最高的机器。

注意:为了分类分类整理日志的方便,最好单独将性能日志输出到有有兩个 日志文件中。

27.2%

所谓“巧妇难为无米之炊”,在性能分析的第一步一定要准备性能数据。在系统中打出十根性能日志应该是代价很小的并都有方案。

标准差以后样本数据(直方图)与理论分布(红线)的差值的绝对值的和与均值的比值。



首先载入数据:

实际中,都有以后手工将后边的步骤都做一遍,R语言中MASS包的函数fitdistr就还时要进行分布拟合。下面亲戚亲戚亲们儿用的以后并都有法律方法。

分类整理一下并都有结果,还时要得到下面的表格:

希望本文有利于亲戚亲戚亲们儿提供有有兩个 新的看待系统性能的法律方法,也请亲戚亲戚亲们儿多多实践,多多交流。祝玩得愉快!

理论上,事先请求之间一定会 独立语录,QPS的数值应该服从Poisson分布。这么亲戚亲戚亲们儿还时要沿着并都有思路,通过判断各个机器在不一同间点上算不算服从Poisson分布即可知道请求间的独立性。

13.9%

这里亲戚亲戚亲们儿还时要多试试不同的模型和法律方法,一定会有不少收获。

18.8%

日志事先正常分类分类整理,还时要从SLS的控制台上看得人:



其中只有有有兩个 参数。而Poisson分布的均值(Mean)也为。于是亲戚亲戚亲们儿还时要以样本的均值来作为拟合的Poisson理论分布的参数,这么并都有Poisson分布就被唯一选着了。事先亲戚亲戚亲们儿时要计算样本的抽样点与理论分布的对应点的偏差,将亲戚亲戚亲们加和事先再归一化以后标准差了,作为样本与理论模型间差异度的衡量指标。一图胜千言:

输出的结果如下:

12.4%

注意到线性回归中QPS项是统计显著的(p值<0.001),调整后的回归系数是30%,表示样本数据所含一半都还时要被线性模型解释。而QPS每增加1,平均请求的延时增加1.23 ms。

18.5%

性能日志事先还时要正常生成,就还时要配置SLS分类分类整理哪几个日志了。这篇文档(SLS控制台操作指南)完整性讲述了怎么配置SLS进行日志分类分类整理,这里就不再赘述了。

对于飞天来说,在代码中去掉 十根性能日志也十分容易。飞天的日志还时要采用异步的法律方法打出,什么都有有几乎不用影响原有系统的性能。日志中最好记录或多或少与性能相关的数据和信息。如在XXServer 中就会记录如下的性能日志:

在日志分类分类整理完成后,就有利于用SLS的离线导入功能导入ODPS中,将哪几个数据持久化下来,也为事先的离线分析做准备。具体操作步骤请见文档(日志数据离线归档到ODPS参考手册、ODPS产品帮助文档)。此处不再赘述。

19.1%

从图上看,明显有利于看出在不一同间段不同机器的请求热度又明显的不同,以后热度相当不均匀,最热的机器基本是最冷的机器的5-6倍左右。

以上所使用的数据分析工具仅限于作图和统计均值、标准差。下面亲戚亲戚亲们儿仍然以哪几个数据为基础,使用稍微高级或多或少的法律方法,得到或多或少更有意思的结论。



是一定会 感到眼花缭乱?以后们先把xxx.xx.10.10的数据抽取出来,分析分析,以后再应用到别的机器上。先做个图,看看QPS和Latency之间算不算有联系:

为了知道不同机器的请求的热度,亲戚亲戚亲们儿还时要先做一下QPS的密度图看下:

让亲戚亲戚亲们儿来定量地分析一下数据,看看算不算有利于支持上述结论。先是0-1点的数据,根据不同的机器IP统计出其均值(Mean)与标准差(SD):

注:rodps是ODPS內部基于R实现的SDK,还未通过阿里云服务对外开放。

21.8%

并都有问题就时要亲戚亲戚亲们儿更进一步的思考和分析了。亲戚亲戚亲们儿注意到,似乎这两者发生着线性关系。亲戚亲戚亲们儿还时要使用线性回归的法律方法来验证并都有点。目前事先亲戚亲戚亲们儿所分类分类整理的数据的维度较少,仅有利于推测QPS与延时的关系,并都有只有有有兩个 自变量和有有兩个 因变量的线性回归法律方法叫做简单线性回归

一阵查询事先,亲戚亲戚亲们儿时要的原始数据事先准备在了data并都有数据框后边。时要解释一下的是qps并都有字段计算的是不同的ip在查询范围内的任意一秒内避免好的请求数,亲戚亲戚亲们儿约还时要看作任意一秒内到达的请求数。

21.3%

好的,亲戚亲戚亲们儿再看看1-2点的数据:

亲戚亲戚亲们儿先来看看0-1点的结果:

19.6%

不幸的是,现有的性能工具大每项是针对代码级的运行时间进行分析,目标是诊断代码的性能bug。但目前亲戚亲戚亲们儿并这么(事先我还没见到)针对大型的分布式系统的系统级性能分析工具。



结果会是以后的形式(截取一每项):

拟合分布的原理较简单,以Poisson为例:亲戚亲戚亲们儿知道Poisson分布的概率质量函数是

在哪几个强大的计算能力的支持下,利用通用的数据分析法律方法和性能领域模型,不仅还时要监控系统的性能表现、探寻性能问题产生的部位和意味着,还有利于对系统的性还后能 有符合设计预期进行验证、评估系统的设计与实现。进而提高亲戚亲戚亲们儿的产品和服务的质量,最终获得客户的认可。当然,目前这项工作的请况还比较初级,还有或多或少的工作要做。

得到的结果分类整理如下:

19.2%

32.8%

定量的分析有利于够支持事先亲戚亲戚亲们儿所观察到的结论。以后,亲戚亲戚亲们儿就能把热度的变化直观、准确地描述出来。当然,亲戚亲戚亲们儿还时要继续细化模型,从更多的维度观察系统内正在发生的事情,得到更多更精确的结论。如Partition级的热度统计,秒级的热点迁移的变化等等。

20.4%

22.3%

输出:

21.0%

18.7%

不幸地,除了第一台机器xxx.xx.10.10外,或多或少机器的回归系数一定会 到10%,QPS的系数也非常低。这只有说明简单线性模型对或多或少机器的性能表现几乎无法刻画。实在这么得到预期的结论,以后亲戚亲戚亲们儿还时要得到有有兩个 相反的事先或多或少和直觉相悖的结论:XXServer端的请求平均延时与请求的热度并这么多大的简单线性关系

分类整理一下结果的样式:

18.2%

21.9%

从并都有例子中,亲戚亲戚亲们儿看得人了不仅热度是变化的,而不同XXServer上避免的请求的独立性也是会转移的。事先亲戚亲戚亲们儿老是在关注请求的到达的特征,这么下面亲戚亲戚亲们儿来看看用户和系统设计者最关心的指标——系统的延时吧。

既然线性模型Work的不错,这么亲戚亲戚亲们儿来看看这15台机器个人所有所有的QPS的影响和回归系数吧:

亲戚亲戚亲们儿还时要通过拟合Poisson分布,根据拟合的标准差判断真实的数据与理论分布的差值。标准差越小,说明越服从Poisson分布,也就意味着并都有XXServer收到的请求从时间上看越独立。

亲戚亲戚亲们儿就以OXS场景来作背景,来看看不一同刻从OXS前端机发送到XXEngine的XXServer的请求算不算均匀,算不算有热点,热点是怎么转移的,以及对性能的影响。从并都有很有现实意义的例子来看看怎么使用以后的法律方法来进行性能分析。

12.7%

13.1%

17.3%

输出(分类整理一下格式):

由后边的分析可知,在不一同间段内不同机器的热度是不同的,这么亲戚亲戚亲们儿推测哪几个机器的平均请求延时也是不同的。什么都有有亲戚亲戚亲们儿下面要进行的是并都有时间序列分析