Spark Optane IMDT 测试

测试目的

如果不清楚什么是Optane,可以先了解一下:Optane介绍

使用 Intel Memory Drive Technology (IMDT)Intel Optane SSD 模拟成内存,进行性能测试。

在运行时,部分 DRAM 被用作缓存,缓存命中失败时,IMDT会进行拦截并将数据写入IMDT,IMDT通过机器学习从 Optane ssd 不断地预读取数据来避免缓存丢失。

在这里插入图片描述

验证是否可以通过 IMDT 技术来降低内存成本。

测试

配置

group ID内存配置可用内存(G)其余配置运行环境
A256G DRAM250 CPU: 2 * Intel® Xeon® Gold 5118 Processor
DISK: 11 * HDD(8T) + 1 * SSD(1T)
NIC: 2 * 10Gbps
CentOS 7.4
CDH 5.15
java 8 Update 162
Apache Spark 2.3.1
Intel® Memory Drive Technology
B64G DRAM + 375G Optane342
C256G DRAM + 375G Optane566

tip: 由于配置所限,有条件的话最好能增加一组 DRAM = DRAM + Optane 的对照组

测试方法

  • 测试框架: Hibench
  • 运行模式:standalone 单机模式
  • executor配置: 2C, 20G
group id配置
AA机器 7 executors
BB机器 7 executors
CC机器 7 executors
B-1B机器 14 executors
C-1C机器 14 executors
  • A,B,C 三组用来判断相同spark参数在不同硬件上的表现
  • B-1,C-1 用于对比在 A 已经没有内存资源情况下的表现

Benchmark

Cache

group IDdata size(on Disk)data size(on Mem)cost(m)
A4.3G19G1.9
B4.3G19G2.4
C4.3G19G2
A16.2G63G6.3
B16.2G63G6.9
C16.2G63G6.6

使用spark.cache()对数据进行缓存。

Wordcount

group IDdata sizecost (minutes)
A100G3.1
B3.5
C3
A250G7.9
B8.3
C7.9

Terasort

group IDdata sizecost (minutes)
A50G4.7
B6.8
C4.9
A250G14
B22
C15.3

KMeans

group IDdata informationrun paramscost (minutes)
A size: 19G
nums: 100M
clusters: 5
dimension: 20
iteration: 5 k: 10 2
B3.7
C1.8
A size: 56G
nums: 500M
clusters: 5
dimension: 20
5.8
B18.3
C4.9
C-13.5

总结

Optane IMDT 的目标是解决DRAM价格昂贵和单机内存容量瓶颈的问题,例如单机达到数十T内存。

在不同的 case 下,应用的性能差别非常大,在DRAM运行时间的 30-95% 之间波动,IO密集型的应用表现最好,其次是计算密集型,内存带宽是瓶颈的应用性能下滑严重。

建议用法: 部分节点使用Optane扩展内存,使用yarn的node label或mesos的role机制将内存带宽不敏感的任务调度到相应节点,能在一定程度上减少成本和提升运行效率的目的。

Q: 为什么和官方测试的数据有出入?

A: 官方的测试是假定内存容量是瓶颈(cpu/IO等资源充裕)的场景。然后让本来只能启动30个 7C 17G executor的应用,变成 42 个 10C 40G 的executor,从而达到增加20%的机器成本达到3.5倍的性能提升效果。

容量说明

目前单机最多扩展8块OPTANE内存。

本文使用最佳性能模式,比最大容量模式内存会有所下降。

375G 的 P4800X,模拟成内存使用时,与 64G 内存组合时容量为 280G,与 256G 内存组合时容量为316G,比最大容量模式的 320G 略低。

在这里插入图片描述

成本相关

2018.9

  • P4800X:$3.36/G
  • 内存:$10/G

适合的场景

  1. 大量的顺序读取,例如 OLAP
  2. 列式读取的数据库或者KV数据库的缓存
  3. 容器/虚拟机,多租户
  4. cpu密集型任务

可能适合snappydata或redis等场景(未测试)

不适合的场景

  1. 内存密集型的任务不适合,内存带宽会成为应用的瓶颈。
  2. 没有大量并行化(parallelization)的内存随机访问任务。

参考

EXPANSION OF SYSTEM MEMORY USING INTEL®MEMORY DRIVE TECHNOLOGY

apache-spark-optimization-technology-brief

A closer look at Intel Memory Drive Technology (IMDT), with Intel’s Ravikanth Durgavajhala

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值