存储体系

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

存储体系

存储体系

计算机存储体系分为多级,常见的有小到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的优势目前基本只剩下容量与数据长久保存的稳定性

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/6132.html

(0)
上一篇 2023-04-16
下一篇 2023-04-16

相关推荐

  • 论数据库项目的代码组织[通俗易懂]

    论数据库项目的代码组织[通俗易懂]数据库项目的代码组织大致有两种形式:增量式与快照式。 Entity Framework (Core)的数据库迁移工程就是经典的增量式组织形式:有专门的迁移历史表标识增量版本,不同版本之间的升级、降级由

    2023-05-15
    139
  • sql组合查询语句_数据库查询语句where的用法

    sql组合查询语句_数据库查询语句where的用法目录汇总:SQL 入门教程:面向萌新小白的零基础入门教程 使用 WHERE 子句 中介绍的所有 WHERE 子句在过滤数据时使用的都是单一的条件。为了进行更强的过滤控制,SQL 允许给出多个 WHER

    2023-04-19
    150
  • JavaScript获取对象的key

    JavaScript获取对象的key在 JavaScript 中,获取对象的 key(属性名)是非常常见的操作。不仅如此,有时候我们需要对对象的 key 做进一步的操作,如查找某个特定 key,在循环中迭代对象等等。这篇文章将详细介绍如何使用 JavaScript 获取对象的 key(属性名),并给出多个案例来演示不同的用法。

    2024-06-14
    46
  • 如何正确管理HBase的连接,从原理到实战「建议收藏」

    如何正确管理HBase的连接,从原理到实战「建议收藏」本文将介绍HBase的客户端连接实现,并说明如何正确管理HBase的连接。 最近在搭建一个HBase的可视化管理平台,搭建完成后发现不管什么查询都很慢,甚至于使用api去listTable都要好几秒…

    2023-02-19
    142
  • mysql中常用函数_today函数不需要参数

    mysql中常用函数_today函数不需要参数5.MySQL常用函数 5.1合计/统计函数 5.1.1合计函数-count count 返回行的总数 Select count(*)|count (列名) from table_name [WHER

    2023-06-08
    132
  • 将Python的datetime.timedelta()转换为数字

    将Python的datetime.timedelta()转换为数字在Python中,datetime模块中的timedelta类可以表示两个时间之间的差距。有时我们需要将这个时间差表示为一个数字。本文将对如何将timedelta转换为数字进行详细介绍。

    2024-05-04
    71
  • Redis学习笔记记录[亲测有效]

    Redis学习笔记记录[亲测有效]基础篇 什么是Redis及快速理解Redis的使用 Redis解决的问题及Redis的特性 Redis的应用场景及正确安装与启动 Redis配置、启动、操作、关闭及版本选择 字符串使用与内部实现原理

    2023-02-02
    151
  • 优化Python代码运行效率的利器——sleep360

    优化Python代码运行效率的利器——sleep360在Python开发中,我们经常需要进行大量的耗时操作,例如IO操作、网络请求等。这些操作会占用大量的系统资源,导致程序运行变慢。为了解决这个问题,我们可以使用Python的一个强大的工具——strongsleep360/strong。

    2023-12-19
    105

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注