购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.1 持久内存的产生

1.1.1 大数据发展对内存的需求

1.数据量的持续增长

互联网催动了电子商务、自动驾驶、物联网的迅猛发展,大量的个人数据及商业数据随之产生。传统的互联网入口从门户网站转为搜索引擎及移动应用后,用户的搜索行为和提问行为产生了海量数据。移动设备一般都有数十个传感器,这些传感器收集了大量的用户点击行为数据及位置、温度等感知数据。电子地图(如高德地图、百度地图、谷歌地图)每天产生大量的数据流。这些数据不仅代表一个属性或一个度量值,还代表一种行为、一种习惯,经频率分析后会产生巨大的商业价值。进入社交网络的时代后,互联网行为由用户参与创造,大量的互联网用户创造出海量的社交行为数据,这些数据揭示了人们的行为特点和生活习惯。电子商务的崛起产生了大量网上交易数据,包括支付数据、查询行为、物流运输、购买喜好、点击顺序、评价行为等,这些都是信息流和资金流数据。随着5G技术逐步进入商用,数据量将会进一步爆发。有分析估计,到2020年年底,每个互联网用户将产生约1.5GB数据,每辆自动驾驶汽车将产生约4TB数据,每家智慧工厂将产生约1PB数据,而每家云视频提供商将产生约750PB数据。

全球数据量增长趋势如图1-1所示,IDC预测,全球总数据量将从2019年的40ZB(1ZB=1×10 12 GB)增长到2025年的175ZB。175ZB是多大的数据量呢?假如把这些数据都刻录到DVD上,再将DVD堆起来,其高度约是地球到月球距离的23倍,这个距离大约能绕地球赤道222圈。

图1-1 全球数据量增长趋势

以下是一些更详尽的IDC关于2025年全球数据的预测和推演:

● 由于终端设备和传感器使用量的日益增长,2025年全球总数据量将从2019年的40ZB增长至175ZB;

● 2025年全球将会有超过1500亿台的设备联网;

● 2025年将会有75%的世界人口,即60多亿名消费者每天进行数据交互;

● 2025年每一个上网的人,无论身处何地,其和联网设备平均每天交互次数为4900次,约17.6s交互一次;

● 物联网设备在2025年将会产生90ZB数据;

● 2025年将会有30%的数据是实时的,相比之下,2017年只有15%的数据是实时的;

● 2025年的175ZB数据中有60%的数据是由企业组织创建和管理的,而2015年该比例是30%。

2.大数据技术的发展

与传统的数据相比,大数据的产生方式、存储载体、访问方式、表现形式和来源特点等都有所不同。大数据更接近于某个群体的行为数据,它是全面的、有价值的数据。企业利用大数据改善用户体验,发现新的商业模式,提供个性化的定制服务,从而焕发新的竞争力;消费者日益离不开这个数字化的世界,其依赖在线的移动应用和朋友、家人保持联系,获取商品及各式各样的服务,甚至在睡觉时还有设备为他们采集和分析身体健康数据。如今的经济社会发展越来越依赖于大数据技术的发展。

大数据技术大致分为以下几类。

● 预测分析技术:用于帮助公司发现、评价、优化和部署预测模型,通过分析数据来提高商业表现并降低风险。

● NoSQL数据库:为了应对大数据时代多样化的数据格式而产生,除了key-value,还包含文档及图片的数据库。

● 搜索与知识发现:从结构数据或非结构数据中洞察业界发展趋势并挖掘潜在的商业机会。

● 流分析:能够高效地过滤、聚合、丰富和分析来自多个实时数据源的高带宽数据。

● 内存数据架构:将大量的数据常驻在内存或闪存(Flash)里,提供低延时的数据访问和处理,这种数据架构通常用于热数据和温数据。

● 分布式存储:指目前比较流行的分布式网络存储,数据被划分成多片,并且复制多个副件,然后将其分别存放在不同的系统中,以获取更高的可靠性和并发性能。

其他的大数据技术还有数据虚拟化,对多个不同格式数据源的数据进行聚合、集成、清洗等操作的数据服务技术。数据从生成到分析处理,时间窗口非常小,为了快速生成决策或者提供数据服务,大数据技术都采用相对比较高端的机器或集群来处理数据。

3.数据分层

无论哪一种大数据技术,其数据量通常是TB级甚至PB级的,因此在数据处理过程中需要的原始输入数据及产生的临时数据对内存的需求异常庞大。数据处理节点,通常称为计算密集型节点,需要满配微处理器和DRAM。当前的主流双路微处理器的系统多达24个内存插槽,一般可配置24个存储量为32GB甚至64GB的内存,总存储量可达1.5TB。当然,这样的配置成本非常高。通过在性能、容量和成本间不断权衡,大数据技术形成了如图1-2所示的层次化存储结构。其中,DRAM访问速度最快,但是成本最高,所以只能用来暂存需要频繁访问的数据,这种数据称为热数据。硬盘容量大,成本最低,但是访问速度最慢,所以适合用来保存不需要经常访问的数据,这种数据称为冷数据,如个人收藏的电影、家庭照片等。介于热数据与冷数据之间的,是那些偶尔需要访问的数据,称为温数据,各种固态硬盘(SSD)可以用来保存温数据。还有一类数据主要是用于存档的,除非特别情况一般极少访问,称为冻数据,通常被存放在更廉价的大容量硬盘驱动器(Hard Disk Drive,HDD)上。

图1-2 数据分层及存储设备

1.1.2 内存和存储间的性能鸿沟

1.内存-存储架构概述

内存及存储设备可以分为两大类:易失性和非易失性。易失性设备需要维持供电,断电后数据会丢失,如SRAM(Static Random Access Memory,静态随机存储器)和DRAM(Dynamic Random Access Memory,动态随机存储器)。非易失性设备,如EEPROM(Electrically Erasable Programmable Read Only Memory)和Flash,数据在断电后可以继续存在。传统的内存-存储架构如图1-3所示的。

图1-3 传统的内存-存储架构

访问速度最快、性能最好的内存技术用于金字塔的顶部,如L1缓存、L2缓存、L3缓存。L1缓存通常采用SRAM,设计在微处理器芯片内,使用与微处理器相同的CMOS技术。L2缓存和L3缓存也采用SRAM,既可以集成在微处理器上,也可以是独立的芯片。但是SRAM的集成度相对较低,一般缓存成本比较高,容量比较小,因此L1缓存的存储量只有几十KB,L3缓存的存储量也不过几十MB。

缓存之下的物理内存采用DRAM,其存储量比缓存大得多,单条就可达到几十GB。目前的计算机系统常采用多通道技术,可以同时支持几十根内存,用户可在性能(插多少根内存)和成本(每根内存多大容量)之间选择一个平衡点。内存中频繁使用的数据都会被临时存放到缓存中,从而获得更快的读写速度。

物理内存之下是能持久保存数据的设备,包括SSD和硬盘。存储设备的容量非常大,最终用户的所有数据都会存储在其中。长期以来,由高密度旋转磁性盘片记录数据的硬盘一直是非易失性存储的主角。随着Flash容量的提升和成本的下降,由Flash颗粒制作的SSD得到了广泛应用。SSD常常作为硬盘的读写缓存。硬盘因为容量非常大,且单位容量的存储成本特别低,在存储访问频率很低的海量数据方面仍发挥着主要作用。

2.性能鸿沟

内存-存储架构从计算机诞生之日起就在持续演进,虽然经过多年的发展,但外围存储的速度依然跟不上微处理器的运算速度。在大数据需求日益增长的今天,外围存储速度与微处理器运算速度的差异尤为突出。

当前的内存-存储架构下:热数据通常存放在主内存中,温数据通常存放在SSD中,冷数据通常存放在硬盘中。微处理器的延时是皮秒级(1ps=10 -12 s)至纳秒级(1ns=10 -9 s)的,内存的延时是几十纳秒,SSD的延时是100μs(1μs=10 -6 s)至几十毫秒(1ms=10 -3 s),硬盘的延时是一百毫秒至几百毫秒,内存的延时与SSD的延时相差千倍,如图1-4所示。游戏玩家都有这样的体验,首次打开一个大型游戏,需要等待几十秒甚至几分钟才能加载完成,这是系统在硬盘中向内存读取游戏程序和游戏数据造成的。如果这些数据已经存储在内存中了,那么再次读取数据就会非常快。但是,在处理海量数据的时候,由于内存容量的限制,只有中间结果可以存储在内存中,因此需要频繁地从硬盘中导入、导出大量的数据。从运算效率或用户体验方面来看,这个延时在大数据时代是难以接受的。

因此,在内存子系统与SSD之间就出现了一个性能缺口,需要由新的存储层次来填补,称之为持久内存(Persistent Memory,PMEM),有时也称为非易失性内存(Non-volatile Memory,NVM)或存储级别的内存(Storage Class Memory,SCM)。持久内存可以采用不同的介质,如磁随机存储、相变存储等。用持久内存来解决内存与存储之间的性能鸿沟,甚至在某些场景下取代部分内存,可以降低系统的整体成本、功耗及设计难度。

图1-4 性能鸿沟

1.1.3 持久内存的使用场景

与传统的内存和存储设备相比,持久内存具有两点优势:其一,它的容量接近SSD的容量,以英特尔傲腾持久内存为例,最大的容量将达到TB级;其二,它的速度非常快,是目前最接近DRAM的非易失性内存,而成本又比DRAM低得多。在不同的应用场景下,通过合理的配置,可以充分利用持久内存的这两个优势。当前,持久内存主流的应用场景主要有海量内存扩展、持久化缓存、高速存储和PMoF(Persistent Memory over Fabric,通过高速网络的持久内存访问)等。

1.海量内存扩展

任何需要大内存的场景都会得益于持久内存的大容量和低成本的优点。内存数据库在大数据时代迅速扩大,是持久内存作为内存应用的典型受益者之一。由于持久内存的性能接近DRAM,但成本比DRAM低很多,经过合理的配置,持久内存可以取代大部分DRAM作为主内存。

持久内存为Redis数据库带来了新价值,其单根容量大(128GB/256GB/512GB)、性价比高,可以通过支持更多的Redis运行实例,充分发挥单机处理器的能力,纵向扩展单机业务能力。相比于使用多台服务器横向扩展业务能力,纵向扩展减少了多台服务器中间的管理开销,降低了运维成本。总的来说,通过持久内存来扩展内存,可以大大降低业务的总成本。关于持久内存在Redis中的应用,本书第6章有非常详尽的叙述。

在SAP HANA应用中,可以通过扩展节点来增加系统的数据容量。英特尔的研究表明,一个配置了持久内存的扩展节点(24×128GB DRAM+24×256GB DCPMM)与全内存的配置(48×128GB DRAM)相比,能够多支持25%的数据容量且成本降低了10%。如果将以前老旧的系统更新为4路微处理器的可扩展节点,使用持久内存的系统配置的成本将降低39%,同时容量将扩大一倍。

随着数据库需求的持续增高,多租户的数据库即服务虚拟化(Multi-tenant Database-as-a-service Virtualization)希望用尽可能高的虚拟机密度来降低成本,持久内存低成本和高容量的特性正好满足这一需求。英特尔的实验数据显示,一个192GB的DRAM加上1TB持久内存的系统,比768GB全DRAM系统的成本降低了30%,但是能够多支持36%的虚拟机。

除了数据库应用,其他需要海量内存的场景还包括CDN(Content Delivery Networks,内容分发网络)视频流服务、内存中的人工智能或机器学习。这些场景都可以通过配置一定量的持久内存来降低成本并且提高主内存容量,具体内容请参考本书第8章。

2.持久化缓存

各种应用都需要持久化的数据量,尤其需要在线持久化的数据量。而持久化的方式,都是经过谨慎设计的,否则,过大的数据量持久化必然会影响系统整体的性能。以Hadoop中的HDFS为例,用于描述数据的元数据是非常关键的,它记录了文件属主、大小、权限、时间戳、链接和数据块位置等信息。元数据被放在主节点上,为了保证各项性能,元数据要常驻内存,同时为了保证数据的完整性,又必须定期将元数据以镜像文件和编辑日志的形式保存到硬盘上。在这种情况下,如果主节点出现异常宕机,或者意外断电,系统就需要数十分钟甚至几小时的时间来重新恢复元数据,而这种中断会给服务提供商带来巨大的损失。为了降低这种损失,服务提供商不得不考虑采用高可用架构的双备份主节点。持久内存的出现可以改变这种复杂的设计结构。元数据可以直接保存在持久内存中,断电后数据依然完整,重启后可以直接读取使用,因此不需要额外考虑数据持久化问题,大大提高了系统的可用性。

在Redis应用中,如果使用Redis作为存储,利用持久内存可以存储更多数据。对于缓存业务,在缓存中存储的数据越多,缓存的命中率就越高,整体的性能就越好。但是大容量的缓存也带来了一个挑战,若发生断电或者Redis宕机,那么预热整个缓存数据需要很长的时间,业务的性能很容易受到影响。持久内存提供了持久化的能力,在某些特别场景下,使用持久内存不需要经过预热的过程,可以快速恢复缓存中的数据。

持久内存的读写速度并不均衡,读的性能远好于写的性能,而Redis的主要业务为缓存业务,在数据预热到缓存中后主要用于读,只有当从Redis中读不到数据时,才会从数据库中读出数据并写入Redis,所以持久内存对于读多写少的Redis是比较合适的。具体请参考本书第6章关于Redis的介绍。

3.高速存储

在作为高速存储应用时,持久内存主要发挥其读写速度快且数据断电可保持的特点。传统的存储设备将数据持久化地写到硬盘中,导致各项性能不可避免地会受限于硬盘的访问延时。SSD的出现大大缩短了访问延时,而持久内存的出现进一步缩短了访问延时,从而优化了整个系统设计方案。比如,欧洲核子中心(CERN)的大型强子对撞机(Large Hadron Collider,LHC)通过评估采用持久内存和SSD相结合的方式实现了高速获取数据。数据先直接保存在持久内存中,经过过滤和处理的数据再保存到SSD中,这样不仅同时满足了高带宽和读写寿命的要求,还提供了大容量的支持。关于LHC,请参考本书8.4节。

4.PMoF

随着计算和存储分离趋势的发展,可以构建一个统一的大容量内存池共享给不同的应用程序使用。PMoF就是这种更高效地利用远程持久内存(Remote Persistent Memory,RPM)的技术,在实际PMoF设计实现时,还需要考虑以下几方面:

● 持久内存速度尤其是读速度非常快,远程访问需要低延时的网络;

● 持久内存带宽很大,需要高效的访问协议;

● 远程访问不能带来很大的额外开销,否则就会丧失持久内存带来的速度和延时优势。

基于RDMA(Remote Direct Memory Access,远程直接存取存储器)技术的高性能网络有高带宽、低延时、稳定的流控等优点,因此采用PMoF技术可以更好地发挥持久内存在远程访问场景下的性能优势。本书第7章有详细介绍。 4o06R0tyEKiTw3ZlKAfZ2fYTZolwba+U4k5+BSgnrCxYn0+OggFP+eYx/C0VuUXu

点击中间区域
呼出菜单
上一章
目录
下一章
×