您好,登录后才能下订单哦!
本篇文章为大家展示了如何理解Storm的性能测试报告,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
在一次面试的过程之中,有CTO详细的询问了 对于机器性能的测试,如下所示:
配置如下:
1 Cpu 8核 ×2 台机器
2 主频 2.26
3 操作系统 redhat
4 网络千M的以太网
5 Storm的版本号:0.6.1
Storm 是一个流处理系统,它以tuple为基本单位,每个tuple可以包含多个字段(field)。我们给tuple定义两个字段:
Data: 存放原始的数据,这里是1000字节的数据,此测试中我们仅仅是直接的转发数据,所以唯一的处理开销就是1000字节的内存拷贝
ltsInfo: 时间戳信息,每经过一个处理模块,我们就在此字段中追加上当时的时间戳,最后统计模块就可以根据这些时间信息计算出总延迟等。由于不同的机器时间戳并不同步,这给计算延迟带来了固有误差,解决的办法就是把数据发送模块和最后的统计模块放到一台物理机上。
关于在分布式集群上测试storm的一个说明:在storm上,我们很难给某个模块(component)指定其运行的物理机,storm总是自动的把任务平均分配给集群中的各个机器,因此在测试中我们将使用storm的工作方式来扩展,而非设计非典型的情景(给某个component指定特定的机器来运行,从而打破这种平均分配原则)。
也就是采取了淘测试的机制来处理
内存的使用
淘宝的测试结果为 2万条/秒左右。
在我本地机器上测试是超过了2.5万条,其中的区别可能是淘宝在测试的过程之中加入了一些时间TimeStamp。
到目前位置还没有新加机器来进行一些横向的扩展。没有对比新加入的机器对于系统集群的计算能力有多少增加。
具体的测试方式请参考
淘测试的连接:
http://blog.linezing.com/?p=1048&replytocom=828
在我们的实际测试之中,GC 将对于数据的处理造成比较大的速度的改变。Tuple的处理会积压是一个特别常见现象。
经过上面的测试我们可以得出以下的结论:
storm单条流水线的处理能力大约为20000 tupe/s, (每个tuple大小为1000字节)
storm系统本省的处理延迟为毫秒级
在集群中横向扩展可以增加系统的处理能力,实测结果为1.6倍
Storm中大量的使用了线程,即使单条处理流水线的系统,也有十几个线程在同时运行,所以几乎所有的16个CPU都在运行状态,load average 约为 3.5
Jvm GC一般情况下对系统性能影响有限,但是内存紧张时,GC会成为系统性能的瓶颈
使用外部处理程序性能下降明显,所以在高性能要求下,尽量使用storm内建的处理模式
测试的工具是用的:nmon
上述内容就是如何理解Storm的性能测试报告,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。