其时方位: 主页 > Linux学院 > 企业运用 > 运用 > 运用SLS和ODPS进行体系的功用分析

运用SLS和ODPS进行体系的功用分析

2014-08-08 14:52 来历:阿里云 作者:陈昕 人气指数: 我要谈论

在对核算机体系,尤其是散布式体系的搭建和验证进程中,功用要素是需求侧重考虑的要素之一。更急进一点说,判别架构规划的正确与否,功用的好坏、是否可控、是否可预期必定是最有用的衡量方针。

不幸的是,现有的功用东西大部分是针对代码级的运转时刻进行分析,方针是确诊代码的功用bug。但现在咱们并没有(或许我还没见到)针对大型的散布式体系的体系级功用分析东西。

尽管这样,但咱们可以发扬DIY精力,卷起袖子自己来做这样的功用分析。经过简略日志服务(SLS)对功用日志进行搜集,并运用SLS的离线通道将功用相关的数据导入ODPS中,再拿出专业的数据分析东西R言语,就可以做恣意的功用分析了。只要想不到,没有做不到!

咱们就以OXS场景来作布景,来看看纷歧起刻从OXS前端机发送到XXEngine的XXServer的恳求是否均匀,是否有抢手,抢手是怎么搬运的,以及对功用的影响。从这个很有现实意义的比方来看看怎么运用这样的办法来进行功用分析。

记载功用日志

所谓“巧妇难为无米之炊”,在功用分析的第一步必定要预备功用数据。在体系中打出一条功用日志应该是价值很小的一种计划。

关于飞天来说,在代码中添加一条功用日志也十分简略。飞天的日志可以选用异步的办法打出,所以简直不会影响原有体系的功用。日志中最好记载一些与功用相关的数据和信息。如在XXServer 中就会记载如下的功用日志:

点击这儿给我发消息

上述日志中记载了其时的时刻点、恳求类型、恳求抵达的时刻点、在行列中等候的时刻、体系处理这个恳求的时刻等有用的信息。

留意:为了搜集日志的便利,最好独自将功用日志输出到一个日志文件中。

用SLS搜集日志

功用日志假如可以正常生成,就可以配备SLS搜集这些日志了。这篇文档(SLS操控台操作攻略)具体叙述了怎么配备SLS进行日志搜集,这儿就不再赘述了。

日志假如正常搜集,可以从SLS的操控台上看到:

1

 

运用SLS的离线导入功用写入ODPS

在日志搜集完成后,就可以用SLS的离线导入功用导入ODPS中,将这些数据耐久化下来,也为之后的离线分析做预备。具体操作进程请见文档(日志数据离线归档到ODPS参考手册、ODPS产品协助文档)。此处不再赘述。

导入成功后就可以在ODPS中查到功用数据,如图:

2

 

运用R + ODPS进行功用分析

好的,总算可以开端正式进行功用分析啦。咱们用的东西是专业的数据分析东西R言语。


首要载入数据:

3

注:rodps是ODPS内部依据R完成的SDK,还未经过阿里云服务对外开放。

一阵查询之后,咱们需求的原始数据现已预备在了data这个数据框里边。需求解说一下的是qps这个字段核算的是不同的ip在查询范围内的恣意一秒内处理好的恳求数,咱们约可以看作恣意一秒内抵达的恳求数。

咱们先将这个数据分红两部分,一部分是0点到1点的数据,另一部分是1点到2点的数据。运用如下的指令放入data_ext_0和data_ext_1两个数据框中:

4

 

恳求的热度

为了知道不同机器的恳求的热度,咱们可以先做一下QPS的密度图看下:

5

6

7

从图上看,显着可以看出在纷歧起刻段不同机器的恳求热度又显着的不同,并且热度适当不均匀,最热的机器根本是最冷的机器的5-6倍左右。

图上还可以根本看出,与0-1点的抵达率比较,1-2点大部分机器的密度图都有不同程度的右移,这意味着大部分机器的恳求抵达率有所进步。而0-1点抵达率最高的一个机器(也便是xxx.xx.10.47),反而在1-2点的时分恳求抵达率有必定程度的下降。

让咱们来定量地分析一下数据,看看是否可以支撑上述定论。先是0-1点的数据,依据不同的机器IP核算出其均值(Mean)与规范差(SD):

8

输出(收拾一下格局):

IP xxx.xx.10.10 xxx.xx.10.32 xxx.xx.10.36 xxx.xx.10.37
Mean(SD) 93.49 (52.70) 115.31 (65.45) 150.41 (65.39) 119.32 (72.38)
IP xxx.xx.10.38 xxx.xx.10.39 xxx.xx.10.40 xxx.xx.10.41
Mean(SD) 138.49 (74.21) 158.57 (75.97) 172.67 (106.83) 132.28 (98.17)
IP xxx.xx.10.42 xxx.xx.10.43 xxx.xx.10.44 xxx.xx.10.45
Mean(SD) 133.97 (82.95) 131.00 (72.58) 62.11 (29.37) 58.30 (28.62)
IP xxx.xx.10.46 xxx.xx.10.47 xxx.xx.10.9  
Mean(SD) 170.90 (101.15) 386.26 (67.11) 127.19 (75.35)  

然后是1-2点的数据:

9

输出:

IP xxx.xx.10.10 xxx.xx.10.32 xxx.xx.10.36 xxx.xx.10.37
Mean(SD) 93.78 (34.55) 127.95 (34.14) 171.14 (40.28) 123.52 (35.96)
IP xxx.xx.10.38 xxx.xx.10.39 xxx.xx.10.40 xxx.xx.10.41
Mean(SD) 137.95 (43.62) 120.44 (33.79) 163.92 (43.58) 106.91 (31.78)
IP xxx.xx.10.42 xxx.xx.10.43 xxx.xx.10.44 xxx.xx.10.45
Mean(SD) 139.55 (58.75) 126.46 (35.30) 69.72 (32.79) 55.37 (24.16)
IP xxx.xx.10.46 xxx.xx.10.47 xxx.xx.10.9  
Mean(SD) 178.37 (52.25) 265.73 (50.06) 108.33 (29.51)  

比较这两组数据,可以看到机器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.73个恳求),但这台机器依然是热度最高的机器。

定量的分析也可以支撑之前咱们所调查到的定论。这样,咱们就能把热度的改变直观、准确地描绘出来。当然,咱们可以持续细化模型,从更多的维度调查体系内正在发作的作业,得到更多更准确的定论。如Partition级的热度核算,秒级的抢手搬迁的改变等等。

以上所运用的数据分析东西仅限于作图和核算均值、规范差。下面咱们依然以这些数据为根底,运用略微高档一些的办法,得到一些更有意思的定论。

恳求之间是否相互独立

理论上,假如恳求之间都是独立的话,QPS的数值应该遵守Poisson散布。那么咱们可以沿着这个思路,经过判别各个机器在纷歧起刻点上是否遵守Poisson散布即可知道恳求间的独立性。

咱们可以经过拟合Poisson散布,依据拟合的规范差判别实在的数据与理论散布的差值。规范差越小,阐明越遵守Poisson散布,也就意味着这个XXServer收到的恳求从时刻上看越独立。

拟合散布的原理较简略,以Poisson为例:咱们知道Poisson散布的概率质量函数是

10
其间只要一个参数。而Poisson散布的均值(Mean)也为。所以咱们可以以样本的均值来作为拟合的Poisson理论散布的参数,那么这个Poisson散布就被仅有确认了。之后咱们需求核算样本的抽样点与理论散布的对应点的误差,将他们加和之后再归一化便是规范差了,作为样本与理论模型间差异度的衡量方针。一图胜千言:

11

规范差便是样本数据(直方图)与理论散布(红线)的差值的必定值的和与均值的比值。

实践中,不用手艺将上面的进程都做一遍,R言语中MASS包的函数fitdistr就可以进行散布拟合。下面咱们用的便是这种办法。

咱们先来看看0-1点的成果:

12


成果会是这样的方式(截取一部分):

13

收拾一下成果的款式:

IP xxx.xx.10.10 xxx.xx.10.32 xxx.xx.10.36 xxx.xx.10.37
SD

16.1%

17.9%

20.4%

18.2%

IP xxx.xx.10.38 xxx.xx.10.39 xxx.xx.10.40 xxx.xx.10.41
SD

19.6%

21.0%

21.9%

19.2%

IP xxx.xx.10.42 xxx.xx.10.43 xxx.xx.10.44 xxx.xx.10.45
SD

19.3%

19.1%

13.1%

12.7%

IP xxx.xx.10.46 xxx.xx.10.47 xxx.xx.10.9  
SD

21.8%

32.8%

18.8%

 

咱们可以看到最遵守Poisson散布的机器是xxx.xx.10.45,规范差值有12.7%,现已适当不错了。而误差最大的则是机器xxx.xx.10.47,规范差现已达到了32.8%。留意到xxx.xx.10.47这台机器一同也是热度最高的一台机器,那么这个数据暗示咱们有或许是咱们的体系规划的不够好,致使相同的一批恳求接连拜访了某台机器,造成了抢手的不均衡。

好的,咱们再看看1-2点的数据:

14

得到的成果收拾如下:

IP xxx.xx.10.10 xxx.xx.10.32 xxx.xx.10.36 xxx.xx.10.37
SD

16.1%

18.9%

21.8%

18.5%

IP xxx.xx.10.38 xxx.xx.10.39 xxx.xx.10.40 xxx.xx.10.41
SD

19.6%

18.3%

21.3%

17.2%

IP xxx.xx.10.42 xxx.xx.10.43 xxx.xx.10.44 xxx.xx.10.45
SD

19.7%

18.7%

13.9%

12.4%

IP xxx.xx.10.46 xxx.xx.10.47 xxx.xx.10.9  
SD

22.3%

27.2%

17.3%

 

这个数据与0-1点的数据做比较后,发现不同机器的恳求时刻独立性各有增高或下降。尤其是xxx.xx.10.47这台要点机器,在热度下降后,恳求间独立性加强了,或许意味着一些接连的拜访被调度到了其他的机器上。

从这个比方中,咱们看到了不只热度是改变的,而不同XXServer上处理的恳求的独立性也是会搬运的。之前咱们一直在重视恳求的抵达的特性,那么下面咱们来看看用户和体系规划者最关怀的方针——体系的延时吧。

恳求的延时与热度的联络

由上面的分析可知,在纷歧起刻段内不同机器的热度是不同的,那么咱们估测这些机器的均匀恳求延时也是不同的。所以咱们下面要进行的是一种时刻序列分析。

咱们先运用ODPS强壮的数据处理才能依照分钟粒度来预备数据,再收拾一下时刻表明,改为相对时刻:

15


这样就拿到了15台机器两个小时内每分钟的均匀恳求抵达率(QPS)和均匀恳求延时数据。咱们先看下这些机器在纷歧起刻上的恳求抵达率的改变:

16

17

再看下这些机器在纷歧起刻上的恳求延时的改变:

18

19


是不是感到目不暇接?那咱们先把xxx.xx.10.10的数据抽取出来,分析分析,然后再运用到其他机器上。先做个图,看看QPS和Latency之间是否有联络:

20

21

22

的确可以看出QPS和延时之间是有必定的相关联络的,那么咱们就会进一步问:这两者之间的联络是否可以被定量地描绘呢?

这个问题就需求咱们更进一步的考虑和分析了。咱们留意到,好像这两者存在着线性联络。咱们可以运用线性回归的办法来验证这一点。现在因为咱们所搜集的数据的维度较少,仅可以估测QPS与延时的联络,这种只要一个自变量和一个因变量的线性回归办法叫做简略线性回归。

在R中,可以运用函数lm来进行线性回归。为了展现便利,咱们把延时的单位从us转换为ms,进行回归:

23

输出的成果如下:

24

留意到线性回归中QPS项是核算明显的(p值<0.001),调整后的回归系数是50%,表明样本数据中有一半都可以被线性模型解说。而QPS每添加1,均匀恳求的延时添加1.23 ms。

已然线性模型Work的不错,那么咱们来看看这15台机器各自的QPS的影响和回归系数吧:

25

得到的成果的格局如下:

26

收拾一下这个成果,可以得到下面的表格:

IP QPS Coef Adj.R.Sqr
xxx.xx.10.10 1.23 0.50
xxx.xx.10.32 -0.02 0.03
xxx.xx.10.36 0.01 -0.00
xxx.xx.10.37 0.01 -0.01
xxx.xx.10.38 0.00 -0.01
xxx.xx.10.39 0.03 0.04
xxx.xx.10.40 -0.02 0.03
xxx.xx.10.41 -0.02 0.11
xxx.xx.10.42 -0.02 0.06
xxx.xx.10.43 0.01 0.01
xxx.xx.10.44 -0.00 -0.01
xxx.xx.10.45 0.07 0.08
xxx.xx.10.46 -0.01 -0.00
xxx.xx.10.47 -0.01 0.02
xxx.xx.10.9 0.01 -0.00

不幸地,除了第一台机器xxx.xx.10.10外,其他机器的回归系数都不到10%,QPS的系数也十分低。这只能阐明简略线性模型对其他机器的功用体现简直无法描写。尽管没有得到预期的定论,可是咱们可以得到一个相反的或许有些和直觉相悖的定论:XXServer端的恳求均匀延时与恳求的热度并没有多大的简略线性联络。

本节的分析阐明晰简略线性模型难以描写体系的延时及其决议要素。已然延时对体系如此重要,是不是还有其他办法来深挖决议体系延时的要素呢?答案是必定的,比方咱们可以搜集更多的数据,进行多元线性回归; 或许可以假定不同自变量对因变量的影响不用定是一次的,而有或许是二次的、三次的,这样的多项式回归等。乃至运用各种非线性回归办法以及其他的分析办法。

这儿咱们可以多试试不同的模型和办法,必定会有不少收成。

结语

SLS大大下降了散布式体系下的功用日志的搜集和查询的本钱,而ODPS强壮的离线数据分析和处理才能则使大规模功用数据的处理成为了或许。这两个东西为咱们打开了一扇体系级的功用分析的大门。

在这些强壮的核算才能的支撑下,运用通用的数据分析办法和功用范畴模型,不只可以监控体系的功用体现、探寻功用问题发生的部位和原因,还可以对体系的功用是否契合规划预期进行验证、评价体系的规划与完成。从而进步咱们的产品和服务的质量,终究取得客户的认可。当然,现在这项作业的状况还比较初级,还有许多的作业要做。

期望本文可以咱们供给一个新的看待体系功用的办法,也请咱们多多实践,多多沟通。祝玩得愉快!

P.S. 上文中必定有许多过错,还请各位大拿拍砖。

为您引荐: 体系 功用分析 SLS ODPS
咱们感兴趣的内容
小同伴独爱的新闻
小同伴还重视了以下信息
小同伴重视的焦点

小同伴都在重视的抢手词

新服 缤纷活动 帆海世纪 芈月传 暗黑道具 萌乐网 苹果发布会 最新谍照 三国令 剑雨江湖 怎样修炼战骑 页游 怎样修炼同伴 木甲国际 仙侠道2 推黑科技 页游形式 武圣试炼场 街机玩法 蓝月传奇 个人BOSS玩法 哥们网 九阴绝学 仗剑出鞘 全新形式 范伟打天下 全新元神玩法 七大神兵简介 新手攻略 跑腿使命 门派五行 城战礼包 页游界 泥石流 傅园慧 经典网页游戏 耐玩 盘点 玉石攻略 进步人物 大黑 实装特点 神兵攻略 闻名莽荒 莽荒纪 手持神兵 土豪梦 万世 开学清单 财富赚不断 天书国际 大黑游戏 资源战场 ppwan 天问 激战 全国大战 雄霸一方 新增宠物技术 必定小能手 花千骨 三尾章鱼 风色轨道 双枪手 弑之神 缤纷好礼 惊喜六重连 帮会 中秋福利 克己月饼 九阴真经 玩家 五周年留念 留念银币 名动三界 新服资料片 画江山 勇战妖魔 邪恶势力 上古降魔 老司机玩法 坐骑揭秘 黑科技 竞技场攻略 铁血皇城 披风玩法 书剑恩仇录 配备强化攻略 户外BOSS玩法 全网曝光 赤壁传说 半回合制国 ACT 奇珍商城 热血战歌 传奇瑰宝抽奖 打开办法 门徒 门徒获取玩法 三大萌宠简介