查看原文
其他

计算机的存储体系与性能金字塔

SunnyZhang 数据存储张 2024-05-06


在前文我们介绍了计算机的体系结构,知道计算机的存储分为内存和硬盘两大类。其中内存属于非持久化的存储设备,用于临时存储数据,设备掉电后数据会丢失;硬盘属于持久化的存储设备,设备掉电后数据不会丢失。

实际上在计算机领域存储的种类是非常多的,业界有时候将存储分为内部存储和外部存储两类。其中内部存储通常是只在设备主板上的存储设备,如个人电脑中的存储BIOS存储和内存;外部存储通常需要某种协议与主板相连的存储设备,如机械硬盘、SSD硬盘和光盘等。如图1是一个简单的存储设备分类图。

1 计算存储体系

图1需要说明的是ROM是一种只读存储设备,他是Read Only Memory(只读存储器)的缩写。RAM是一种支持随机读写的存储设备,他是Random Access Memory的缩写。

RAM又可以细分为很多种,常见的两大类如SRAM和DRAM。其中SRAM是Static Dynamic Random Access Memory(静态随机访问存储器)的缩写,也就是静态RAM;DRAM是Dynamic Random Access Memory(动态随机访问存储器)的缩写,也就是动态RAM,其实就是我们常说的内存。

知道DRAM就是我们常说的内存,那么SRAM是用在什么地方呢?SRAM通常是用在CPU的缓存当中的。我们知道现在的CPU通常由L1(Level 1的缩写),L2和L3三级缓存,其中这些缓存大多是采用SRAM实现的。另外需要知道的一个事实是SRAM的速度要比DRAM快的多。    

图2大致描述了CPU各级缓存与内存的关系。由该图可以看出从容量上L1缓存比L2缓存小,L2缓存比L3缓存小。从速度上,L1缓存比L2缓存快,L2缓存比L3缓存快。当然,相对于内存,内存的容量要比缓存大的多,速度也慢的多。

2 CPU各级缓存与内存的关系

L1缓存通常可以达到1150GB/s的速度,但是通常L1缓存的容量不过几百KB。L2缓存的速度可以达到470GB/s,容量不过几个MB。L3缓存的速度大概能到200GB/s,容量可以达到几十MB。

内存位于CPU的外部,其最大速度可以到几十GB,容量比缓存要大得多,可以达到TB级别。但是内存除了带宽比缓存低之外,其访问延时要比缓存高的多。关于内存的更多细节我们会在内存相关章节介绍,本节暂不详述。

外部存储包含硬盘、光盘和磁带等存储设备,其速度就更慢了。以NVMe协议的SSD为例,其带宽最大不会超过10GB/s,而机械硬盘的带宽也才100MB/s多一点。

前面我们从带宽的角度介绍了一下各种内部存储和外部存储的性能。从访问延时角度,各种不同的存储也是有着巨大的差异的。如图1‑26所示,我们展示了常见存储的访问延时数据。其中CPU缓存的延时在1到10纳秒之间,不同级别的缓存访问延时不同,级别一的缓存访问延时大概是1纳秒,而级别二缓存的访问延时大概是4纳秒。    

虽然内存的访问要比硬盘等外围设备快的多,但相对缓存来说,内存的访问延时一般要100纳秒左右。如果将缓存的速度类比火箭的速度,那么内存的速度也就跟普通客机差不多,连战斗机的速度都达不到。

固态硬盘的速度又要比内存慢好几个数量级,其访问延时大概要16微妙。如果与生活中的交通工具类比,基本跟我们现在绿皮火车的速度差不多。是的,是绿皮火车,不是特快,更不是动车。机械硬盘就更慢了,访问延迟在毫秒级,基本上跟马车的速度差不多。你可能不知道马车有多慢,基本比年轻人散步的速度快不了多少。

 

图3 计算机存储性能金字塔

磁带的速度就更慢了,由于磁带不能随机访问,数据定位需要不断的倒带,延时通常在10秒级别。所以,现在几乎没有企业直接用磁带存储数据,大多是用磁带来备份非常冷的数据。

无论是存储研发人员,还是普通的开发人员,了解存储设备的性能金字塔是非常必要的。以CPU缓存为例,如果我们在开发高并发的应用时没有考虑缓存同步和CPU内核多核并发访问的问题,程序的性能可能会比较差。

在存储相关软件领域,通常使用比较快的介质作为慢介质的缓存。比如我们通常采用内存作为文件系统元数据和数据的缓存。这样当用户访问数据的时候,可以减少对硬盘的访问,从而提高文件系统的整体性能。

一些企业级存储系统不仅仅使用内存作为缓存来存储元数据和数据,还将数据存储设计成分层架构,也就是采用SSD和机械硬盘混合架构。通过这种分层架构,存储系统可以为用户提供更高的性能,而价格上却并不会增加太多。    

本节我们介绍了主流存储介质的带宽和延迟等特性,并通过性能金字塔介绍了存储介质间的性能差异。大家可以暂时了解到这种程度,我们后面章节会详细介绍其应用相关的内容。

计算机数据存储简史,从纸到云的变迁    基于Fuse的最简单的文件系统    代码覆盖率测试,聊聊gcov和lcov   SAN存储的概念与基于iSCSI的操作实战   全面了解SSD,SSD关键术语全面解析    分布式虚拟文件系统,数据编排小能手   高性能的基础RAID0,实操与代码实现解析   网络文件系统,年近五十岁,老当益壮    弹性空间之道,逻辑卷管理(LVM)技术    计算机数据存储简史,从纸到云的变迁   基于树莓派和硬盘柜搭建一个几十TB的家用NAS    Linux存储软件栈到底有多复杂,存储软件栈全景概览    分布式存储的软件架构与案例解析    数万客户端NFS服务的困境,聊聊自动挂载技术    深入了解一下SSD的相关内容    什么是文件系统,以Linux中的Ext4为例细聊一下   对象存储,从单机到分布式的演进   为什么都说NFS读写性能差,如何进行优化?



继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存