存储体系

存储体系

计算机存储体系分为多级,常见的有小到cpu内部的寄存器、cache,大到内存、磁盘、磁带以及各式可插拔的usb设备等都属于存储体系的一员,一个常见的直观的图如下:
存储体系

从最顶端的cpu开始一直到最下层的硬盘存储层,可以看到速度逐渐变慢,容量逐渐增大,图示的容量是以我自己的macbookpro16 13.3 8/256g配置为示例说明的

  • CPU/L1,多核时代,每个核心有自己的寄存器与L1,通常指代CPU中的寄存器与L1缓存,通常寄存器的速度在一个时钟周期,L1的速度在1-3个时钟周期(1时钟周期~1/3 ns)
  • L2,CPU内部的L2缓存,多核时代基本也是每个核心独享自己的L2缓存,容量较L1大,速度较L1慢
  • L3,通常说的三缓就是它了,一般都是M级别的大小,我自己的电脑上它是4M左右,台式机/服务器级别的CPU这个大小通常在十几、几十M左右,速度较L2进一步降低
  • Main Memory(主存),常见的内存就是它了,主流的内存容量都是以GB为单位了
  • SSD/HDD,固态硬盘与传统的机械硬盘,容量以TB为单位了

可以看到,我们常见的内存速度在CPU/L1面前被爆成渣渣了,即便如此,内存的速度还是相当快的,计算机的多级存储体系就是一步一步来弥补下一层速度与上一层不匹配的鸿沟,早期可能一个L1就够了,随着半导体技术的发展与进步,L2/L3慢慢出现,后续会不会继续出现L4级缓存或者随着内存技术的革新,干掉L3级缓存等情况也未可知

常见的还有一个网络延时,网络延时对于内网来讲通常在0.1~10ms之间波动,具体可能还跟网络中的设备、路由等关系较大,访问外网(公网)的速度基本都在十几、几百ms甚至秒级别的不一而足,
这个网络延时算是波动比较大的一种

介绍这些是为了让开发人员对于计算机中常见的设备、组件的速度有一个直观的认知,我们的应用通常以进程的方式工作在内存中,以服务的方式对外暴露网络接口,同时自己还兼具作为客户端请求外部的数据库服务、缓存服务等其他组件,然后整个系统里面多个子系统构成一张网状的拓扑结构形成一套完整的系统

硬盘

早期的硬盘以HDD为主,近些年SSD逐渐成为主流,对于企业服务来讲,磁盘需要关注几个点

  • 容量,最常见的指标,硬盘容量大小直接决定能存放多少数据
  • IOPS(Input/Output Operations Per Second) 每秒的读写操作次数,IOPS又可以进一步分为随机读写的IOPS和顺序读写的IOPS

以下为常见的HDD磁盘IOPS列表,数据来源Wikipedia

设备 转速 IOPS.
7,200 RPM SATA硬盘驱动器 7200RPM/S 75~100 IOPS
10,000 RPM SATA硬盘驱动器 10000RPM/S 125~150 IOPS
10,000 RPM SAS硬盘驱动器 10000RPM/S ~140 IOPS
15,000 RPM SAS硬盘驱动器 15000RPM/S ~175-210 IOPS

个人用户使用的机械磁盘转速基本都在5400RPM/S(主流笔记本电脑)、7200RPM/S(主流台式机)
可以看到,HDD的IOPS基本是跟转速正相关的,实际上转速直接决定旋转延迟,感兴趣的可以自行搜索机械硬盘读取数据的原理

以下为常见的SSD IOPS列表,基本都是企业级的,数据来源Wikipedia

设备 形式 IOPS.
Intel X25-M G2(MLC) SSD ~8,600 IOPS
Intel X25-E (SLC) SSD ~5,000 IOPS
G.Skill Phoenix Pro SSD ~20,000 IOPS
OCZ Vertex 3 SSD 最高可到60,000 IOPS
Corsair Force Series GT SSD 最高可到85,000 IOPS

SSD与HDD底层寻址数据的方式区别相当大,可以看到IOPS,SSD相较于HDD基本是碾压式的降维打击,HDD相较于SSD的优势目前基本只剩下容量与数据长久保存的稳定性

posted @ 2021-06-05 09:25  dev_song  阅读(622)  评论(0编辑  收藏  举报