文档章节

Storm的性能测试报告

止静
 止静
发布于 2014/11/26 13:08
字数 833
阅读 440
收藏 0



在一次面试的过程之中,有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



© 著作权归作者所有

止静
粉丝 121
博文 134
码字总数 125762
作品 0
东城
技术主管
私信 提问
Apache Storm 2.0.0 发布,基于 Java ​​​​​​​的新架构

Apache Storm 2.0.0 发布了,距离它上次更新已过去一年,新版本在性能、新功能和与外部系统的集成方面进行了重大改进,下面是一些主要功能及改进: 用 Java 实现的新架构 在之前的版本中,S...

xplanet
06/03
3K
5
Apache Storm 1.0.5 发布,分布式实时计算

Apache Storm 1.0.4 已发布,Apache Storm 是一个免费开源的分布式实时计算系统。简化了流数据的可靠处理,像 Hadoop 一样实现实时批处理。Storm 很简单,可用于任意编程语言。Apache Storm ...

王练
2017/09/16
862
5
Apache Storm 0.9.6/0.10.0 发布

Apache Storm 0.10.0 发布,此版本是个稳定版本,相比之前的 Beta 版本主要包括 bug 修复和改进: STORM-1108: Fix NPE in simulated time STORM-1106: Netty should not limit attempts to...

oschina
2015/11/06
4.7K
8
Apache Slider + Storm

Apache Slider + Storm 系统环境 安装如下组件,部署可用环境 JDK 1.7.0_79 Apache Zookeeper 3.4.* Apache Zookeeper Apache Hadoop 2.6.* Apache Hadoop Apache Storm 0.9.4 Apache Storm......

Yulong_
2016/09/21
446
0
Apache Storm 1.2.3 发布,分布式实时计算

Apache Storm 1.2.3 发布了,更新内容如下: 新特性 [STORM-3233] - zookeeper 客户端升级到最新版本 (3.4.13) 改进 [STORM-3077] - Disruptor 升级至 3.3.11 [STORM-3083] - HikariCP 升级至...

xplanet
07/20
804
0

没有更多内容

加载失败,请刷新页面

加载更多

Qt程序打包发布方法(使用官方提供的windeployqt工具)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/toTheUnknown/article/details/81748179 如果使用到了Qt ...

shzwork
28分钟前
4
0
MainThreadSupport

MainThreadSupport EventBus 3.0 中的代码片段. org.greenrobot.eventbus.MainThreadSupport 定义一个接口,并给出默认实现类. 调用者可以在EventBus的构建者中替换该实现. public interface ...

马湖村第九后羿
49分钟前
3
0
指定要使用的形状来代替文字的显示

控制手机键盘弹出的功能只能在ios上实现,安卓是实现不了的,所以安卓只能使用type类型来控制键盘类型,例如你要弹出数字键盘就使用type="number",如果要弹出电话键盘就使用type="tel",但这...

前端老手
59分钟前
6
0
总结:Raft协议

一、Raft协议是什么? 分布式一致性算法。即解决分布式系统中各个副本数据一致性问题。 二、Raft的日志广播过程 发送日志到所有Followers(Raft中将非Leader节点称为Follower)。 Followers收...

浮躁的码农
今天
7
0
Flask-admin Model View字段介绍

Model View字段介绍 can_create = True 是否可以创建can_edit = True 是否可以编辑can_delete = True 是否可以删除list_template = 'admin/model/list.html' 修改显......

dillonxiao
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部