SNIA持久化内存峰会:虚拟机、数据库、SDS进展曝光

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
日志服务 SLS,月写入数据量 50GB 1个月
简介: - VMware眼中的三种NVRAM; - SQL Server:NVDIMM-N用于Log Buffers加速; - S2D初期支持SCM DIMM块设备; 附会议资料下载链接

记得一年前撰写《3D XPoint遇上SAP HANA:机遇与挑战》,就是参考的SNIA PersistentMemory Summit 2017会议资料。日前PM Summit 2018大会又在美国加州圣何塞举行,再次给我们带来了一些有价值的参考资料。

 

640?wx_fmt=png


会议资料下载链接   https://www.snia.org/pm-summit

百度网盘分享   https://pan.baidu.com/s/1kWSEaGJ

 

HyperVisor支持:VMware眼中的三种NVRAM

 

640?wx_fmt=png上图引用自VMware在会上的演讲资料,这里列出了比较成熟或者即将进入市场的三种持久化内存技术。

 

首先是NVDIMM-N,现已在DellHPE的服务器上支持选配;然后是HPE将普通DRAM内存备份到NVMe SSD上的方式,我理解这样做掉电保护时不仅要对内存条本身供电,维持整个系统开机电池的容量要求高些;第三种是DIMM 内存条形态的Intel3D XPoint,首批上市容量预计在256-512GB,因为介质属于SCM非易失存储级内存,所以没有掉电保护需求。

 

关于目前已上市的PCIe/NVMe接口Intel 3D XPoint SSD,可以参考我写的系列评测:

IntelOptane P4800X评测(序):不用缓存和电容保护的SSD

IntelOptane P4800X评测(1):好钢如何用在刀刃上?

OptaneP4800X评测(2):Oracle 170万TPM意味着什么?

IntelOptane P4800X评测(3):Windows绑核优化篇

MySQL的启示:Intel Optane P4800X评测(4)

SPDK实战、QoS延时验证:IntelOptane P4800X评测(5)

 

640?wx_fmt=png

VMware还列出了性能对比,在一个Fedora 24虚拟机里用FIO测试,从低到高分别为NVMeSSDvSCSI仿真)、vPMemDiskvSCSI仿真)、vNVDIMM(块访问)和vNVDIMM-DAX(直接访问)。性能显然是越往右边越好,其中大数据块的差距更大,写比读的差距更大。

 

持久化内存用于vSCSI块设备的性能也受到了拖累,不过这种方案的好处是可以兼容传统的Guest OS操作系统


640?wx_fmt=png

同时我们看到,微软Hyper-V也从Windows Server2016 RS4(目前还是内部预览版)开始支持Persistent MemoryvPMEM)。

 

SQL Server数据库:NVDIMM-N用于Log Buffers加速

 

640?wx_fmt=png

大家可能看到过Oracle 18c宣传未来对NVRAM的支持,本次微软也讲了SQL Server 2016在这方面的动作。

 

日志写速度容易成为数据库交易的瓶颈,因此更快的日志对数据库(单位时间内)更多的更新带来可能。目前SQL Server的做法是将Log Buffers建立在NVDIMM-N中,数据到达这一步即完成事物提交。当日志写满一个大块时,再将整个块后台刷入SSD上的日志文件。

 

640?wx_fmt=png

由于SQL Server 2016能够使用字节寻址的log(以内存速度commit),能够显著缩短日志的写入延时。根据测试数字,特别是对In-Memory数据库的update速度可提升1,同时降低交易时间。

 

S2D分布式存储:初期支持SCM DIMM块设备

 

关于微软Windows Server 2016自带的Storage Spaces Direct存储软件,我们也发过几篇详细的评测:

 

4节点近160万IOPS:SDS/超融合测试不能只看数字

12万邮箱ESRP测试:Exchange超融合存储设计漫谈

揭秘VDI存储测试:4节点SDS模拟12000虚拟桌面

Windows超融合遇上OracleRACS2D测试之四

 

640?wx_fmt=png

如上图,不难看出S2D是在HDDSATA/SAS SSDNVMe SSD之外引入了第4类存储介质支持。连接在CPU内存总线上的SCM,不难猜到Intel 3D XPoint Memory,至少是最快最实际的。

 

640?wx_fmt=png

S2D配置SCM存储层时,持久化内存设备替代了之前NVMe SSD的位置,既可以支持全SCM(有点奢侈吧),也可以将SCM作为NVMe或普通SSDCache设备

 

3D XPoint Memory为例,写IOPS与读IOPS几乎一样快,写寿命不低于30 DWPD(远高于NAND闪存),官方说没有写放大,不需要垃圾回收。用了这样的Cache设备做为SSD容量层的写缓存S2D的性能会不会再创新高呢?

 

根据上面的描述,我已经大致猜测到将于RS4版本Windows Server 2016回归的S2D,对SCM的支持为块设备形式。而很快我就从下面的文字中确认了这一点。

 

640?wx_fmt=png

Windows Storage Spaces Direct对持久化内存的支持,“最初为模拟块设备,未来还会有更多用法。”

 

:SNIA PersistentMemory Summit 2018会议资料下载

https://pan.baidu.com/s/1kWSEaGJ

目录
相关文章
|
2月前
|
Java Docker 索引
记录一次索引未建立、继而引发一系列的问题、包含索引创建失败、虚拟机中JVM虚拟机内存满的情况
这篇文章记录了作者在分布式微服务项目中遇到的一系列问题,起因是商品服务检索接口测试失败,原因是Elasticsearch索引未找到。文章详细描述了解决过程中遇到的几个关键问题:分词器的安装、Elasticsearch内存溢出的处理,以及最终成功创建`gulimall_product`索引的步骤。作者还分享了使用Postman测试接口的经历,并强调了问题解决过程中遇到的挑战和所花费的时间。
|
3月前
|
存储 算法 安全
Java面试题:Java内存模型及相关知识点深度解析,Java虚拟机的内存结构及各部分作用,详解Java的垃圾回收机制,谈谈你对Java内存溢出(OutOfMemoryError)的理解?
Java面试题:Java内存模型及相关知识点深度解析,Java虚拟机的内存结构及各部分作用,详解Java的垃圾回收机制,谈谈你对Java内存溢出(OutOfMemoryError)的理解?
55 0
|
13天前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
81 5
|
11天前
|
存储 算法 Java
深入解析 Java 虚拟机:内存区域、类加载与垃圾回收机制
本文介绍了 JVM 的内存区域划分、类加载过程及垃圾回收机制。内存区域包括程序计数器、堆、栈和元数据区,每个区域存储不同类型的数据。类加载过程涉及加载、验证、准备、解析和初始化五个步骤。垃圾回收机制主要在堆内存进行,通过可达性分析识别垃圾对象,并采用标记-清除、复制和标记-整理等算法进行回收。此外,还介绍了 CMS 和 G1 等垃圾回收器的特点。
46 0
深入解析 Java 虚拟机:内存区域、类加载与垃圾回收机制
|
2月前
|
存储 安全 Java
JVM常见面试题(二):JVM是什么、由哪些部分组成、运行流程,JDK、JRE、JVM关系;程序计数器,堆,虚拟机栈,堆栈的区别是什么,方法区,直接内存
JVM常见面试题(二):JVM是什么、由哪些部分组成、运行流程是什么,JDK、JRE、JVM的联系与区别;什么是程序计数器,堆,虚拟机栈,栈内存溢出,堆栈的区别是什么,方法区,直接内存
JVM常见面试题(二):JVM是什么、由哪些部分组成、运行流程,JDK、JRE、JVM关系;程序计数器,堆,虚拟机栈,堆栈的区别是什么,方法区,直接内存
|
2月前
|
存储 缓存 NoSQL
Redis内存管理揭秘:掌握淘汰策略,让你的数据库在高并发下也能游刃有余,守护业务稳定运行!
【8月更文挑战第22天】Redis的内存淘汰策略管理内存使用,防止溢出。主要包括:noeviction(拒绝新写入)、LRU/LFU(淘汰最少使用/最不常用数据)、RANDOM(随机淘汰)及TTL(淘汰接近过期数据)。策略选择需依据应用场景、数据特性和性能需求。可通过Redis命令行工具或配置文件进行设置。
54 2
|
2月前
|
Java 数据安全/隐私保护
一种优秀的虚拟机内存架构 - AQ
【8月更文挑战第8天】AQ虚拟机内存架构是一种创新设计,旨在提供高效、可靠及灵活的内存管理。它通过精细划分内存并采用智能分配策略,动态调整以适应应用需求。对于高内存消耗任务,AQ预留足够连续空间避免碎片化;引入内存压缩技术以增加可用空间;具备精准垃圾回收机制提高内存利用率;同时加强安全性与稳定性防止因内存错误导致的问题。总之,AQ通过先进技术提升了虚拟机性能与稳定性。
|
1月前
使用qemu来dump虚拟机的内存,然后用crash来分析
使用qemu来dump虚拟机的内存,然后用crash来分析
|
3月前
|
SQL 缓存 关系型数据库
(十二)MySQL之内存篇:深入探寻数据库内存与Buffer Pool的奥妙!
MySQL是基于磁盘工作的,这句几乎刻在了每个后端程序员DNA里,但它真的对吗?其实答案并不能盖棺定论,你可以说MySQL是基于磁盘实现的,这点我十分认同,但要说MySQL是基于磁盘工作,这点我则抱否定的态度,至于为什么呢?这跟咱们本章的主角:Buffer Pool有关,Buffer Pool是什么?还记得咱们在《MySQL架构篇》中聊到的缓存和缓冲区么,其中所提到的写入缓冲区就位于Buffer Pool中。
164 1
|
2月前
|
存储 Java API
【Azure Developer】通过Azure提供的Azue Java JDK 查询虚拟机的CPU使用率和内存使用率
【Azure Developer】通过Azure提供的Azue Java JDK 查询虚拟机的CPU使用率和内存使用率