有了这对组合,老站长把实时流分析系统玩的顺溜!

杨洋最近有点烦,尽管一年中大部分日子,他都过得很惬意。

也许正因为日子过得太惬意了,所以遇到烦心事才会显得格外的烦。杨洋不禁在心里面自嘲。

杨洋是中国某三线城市的普通工薪阶层,但他还有另外一个身份——一个三线城市网站的站长,本来是为当地城市的年轻人们提供“吃喝玩乐”服务的,顺带帮杨洋赚点“吃喝玩乐”的外快。在智能手机开始普及之后,杨洋还开发了一个App,原本是出于探索性质的,没想到“无心插柳柳成荫”,不仅年轻人喜欢这个App,还吸引了一大批中老年用户来讨论广场舞、相约去摄影等等。这让杨洋不得不感叹,时代变化太快,科技的魅力无法抵挡。

用户多了,自然兴趣点就更多了,依靠原来手工推荐广告的方式显然不合时宜了,根据不同兴趣点的用户推荐不同的广告,一方面能够更加精准,另一方面也能减少打扰用户的次数。另外因为网站设有讨论区,也需要及时监控,同时某些不当言论需要加以区分,是老玩家的经验之谈,还是“马甲”的故意捣乱。显然已经不能完全靠人工来进行操作,怎么办?

苦思冥想后,杨洋根据不同场景需求上了两套实时流分析系统——Apache Spark。

这两套Apache Spark分别部署在两台双路服务器上,而现在遇到的问题就是,需要分析的数据总量正在不断增大,原来出于强计算需求而选择的E5 2699v4+128GB内存的配置,计算能力尚足,但内存容量显然不够了。

解决内存容量问题,杨洋想到两个较为传统的办法:

  • 一是增加内存容量,但内存插槽已经插满了,如果增加内存容量意味着要购买单条容量更大的内存,比如购买单条16GB容量的内存替代现有的单条8GB,出于对未来的预测,杨洋估计需要购买单条32GB容量内存才能满足未来两三年的需求。但这意味着两台服务器都要全部重新替换内存,这可是一笔不小的开销。
  • 另一个解决办法就是每套系统各增加一台服务器,从原来的单机系统变为两台服务器组成的集群。但这样一来的话,除了购买服务器的成本,另外还要增加租赁机房空间的成本。并且,单机变集群,架构变复杂,显然这也不符合杨洋的预期。

两种方式都让杨洋有些难以接受,他希望有另外一种更好的方式,但这一方式迟迟不出现,让杨洋感到有些心烦,实在不行,只能选择上述两种之一?

正当杨洋心烦意乱的时候,被微信公众号的一条新闻吸引到了,因为标题里面有“Apache Pass”字样,难道Apache基金会又推出新的开源项目了?

原来是Intel公司推出了一款新的存储产品名叫Apache Pass,可以用来扩充内存容量,而且单条容量比内存大得多,价格还便宜不少。

杨洋眼前一亮,这就是我想要的产品吗?不过这刚推出的新产品,还要再研究研究。杨洋打算深入研究Apache Pass,没想到却在Intel官网发现了一项此前没有注意到的技术——Intel Memory Drive Technology,即Intel内存驱动技术,简称iMDT。

iMDT

是一种软件定义内存(Software Define Memory,SDM)技术,简单来说,就是这项技术可以与Intel的Optane(中文名“傲腾”)DC P4800X SSD产品相结合,用以扩展系统内存。

把SSD用来当内存?这有点“黑科技”啊。杨洋有些疑惑,不过再翻了翻资料,又发现了其合理性。

Optane

这个SSD应该是专指Optane,因为Optane是一种新的存储介质,与主流印象中采用NAND闪存颗粒的SSD不一样,NAND闪存SSD的写性能相对较差,而且还有寿命问题,尤其是现在主流的TLC SSD或者未来的QLC SSD,虽然在SSD中利用算法可以弥补,但不适合用作内存。

对于Apache Spark这类强计算实时流分析场景,CPU会不停地从内存中读取数据,然后经过计算后又写回到内存,如此循环,写入特性较差写的NAND闪存SSD显然不行。而Optane本身性能就比NAND闪存SSD要好,更关键的是读写性能均衡,这就奠定了作为内存补充的基础条件。

Optane SSD采用PCIe接口,相比真正的内存,性能还是要弱一些,但对于Apache Spark这类应用而言,显然影响不是特别大,因为这类应用对内存的性能要求并不那么苛刻,大容量需求带来的成本优势比读写性能更重要。而且Optane SSD的非易失性存储特性可以保持数据,也许反而还能加速Apache Spark的性能呢?刚刚新闻里不是提到连高端内存数据库SAP HANA都使用Optane吗?

既然有了初步的解决方法构想,杨洋立马给一个经销商朋友,打电话,希望借一套与当前Apache Spark服务器配置相当的服务器硬件用于测试,比较这个比较新奇的技术还需要再验证一下。结果很顺利,朋友那里恰好有两台服务器能够支撑杨洋做测试,于是杨洋就设计了一个测试方案:

杨洋设计的测试方案,首先用一台配置E5 2699v4处理器+128GB内存的基础做一个Apache Spark的基准性能测试,这个配置与杨洋的当前环境配置一致,以便对后面两个测试方案结果对比评估。

然后在其中一台服务器上使用Optane SSD,用来评估iMDT技术的性能提升效果;另外一台服务器则采用传统做法,配置768GB内存,用来评估内存增大后的性能提升效果。两台服务器呈现给Apache Spark的内存容量都是768GB,其他软硬件完全相同。

杨洋使用TeraSort软件进行Apache Spark性能评估,TeraSort是一个常见的性能指标评测程序,其方法是测量在特定计算机系统上对1TB随机分布数据进行排序所需的时间,所花的时间越少,性能就越来。

这个测试程序最初是用来测量Apache Hadoop集群的MapReduce性能的常用方法,也可用于Spark环境。因为都是对数据进行处理,而上传的数据都必须先排序才能进行分析或处理,因此排序性能会极大影响数据分析或处理的效率。

测试发现

通过测试杨洋发现:通过在运行基于 Spark 的 TeraSort 工作负载的单个服务器节点上,使用英特尔 iMDT 添加两块intel Optane DC P4800X SSD后,吞吐量提高了一倍,同时运行时间缩短了近 40%。而在向服务器添加更多内存的方案中,性能相比于iMDT的方案确实更高,但并不突出,约高出6%左右。

但问过经销商朋友相关的价格之后,相比使用iMDT,添加传统内存方案的成本要增加大约 50%左右。显然使用iMDT+Optane SSD更具有成本效益。

而且,使用iMDT+Optane SSD还有一个隐形的好处,就是如果再遇到类似内存容量不够的情况,增大其容量会非常简单。

杨洋测试中使用的Intel Optane DC P4800X SSD的单片容量为375GB,通过iMDT技术,可将其中320GB容量用作内存,相当于10条32GB内存的总容量。而375GB仅仅是Intel Optane SSD产品系列中容量最小的一款产品,其还有750GB和1.5TB容量的Optane SSD可供选择。

Intel Optane SSD组合iMDT技术的相关细节。通过iMDT技术,375GB、750GB与1.5TB的Optane SSD可分别提供320GB、640GB和1.28TB的内存容量。

典型的“花小钱办大事”。如果使用传统DRAM内存增大容量,所需内存容量越大,其成本几乎指数增长。

看到这些对比,杨洋长舒了一口气,如何选择已经很明显了,Intel Optane SSD结合iMDT技术,在Apache Spark环境中,性能与DRAM相媲美,但成本却要低很多,而且未来升级更简单。

本文转自E企研究院,欢迎点击阅读原文!

原文发布于微信公众号 - 大数据在线(dobigdata)

原文发表时间:2019-06-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券