当代存储性能图鉴

关于存储-那些你不得不知道的知识点
这篇文章能够帮助你快速了解有关存储的性能。

I/O

I:Input
O: Output
单个I/O就是单个读/写请求。 该I/O请求被发送到存储介质中(如机械硬盘驱动或固态硬盘驱动)。

请求可以是从磁盘读取一个特定文件, 也可以是将一些数据写入现有文件的请求。 读取或写入文件可能会导致多个I/O请求。

I/O请求的大小

I/O请求具有大小。 该请求可以很小(例如1KB),也可以很大(几兆字节)。 不同的应用程序工作负载将发出具有不同请求大小的I/O操作。 I/O请求大小可能会影响延迟和IOPS数据。

延迟

延迟是完成I/O请求所花的时间, 从发出请求到存储层的那一刻开始测量,并在获取请求的数据或确认数据已存储在磁盘上时停止测量。

在大多数情况下,延迟是关注存储性能时最重要的单一指标。

对于硬盘驱动器,在10到20毫秒之间的平均等待时间被认为是可以接受的(20毫秒是上限)。
对于固态驱动器,根据工作负载,它永远不应超过1-3毫秒。 在大多数情况下,工作负载的等待时间少于1ms。

IOPS

IOPS: I/O Operations Per Second
IOPS代表每秒I/O操作数,这是一种性能指标,在存储世界中广泛使用(就像讨论美女体重一样)。 它告诉我们存储器(对于特定的工作负载)每秒可以处理多少个I/O请求。

需要注意的是,没有相应的延迟,该指标毫无意义。

IOPS 和 延迟

这是一个非常重要的概念。 如果没有有关延迟的说明,则IOPS指标毫无意义。 必须了解每个I/O操作将花费多长时间,因为延迟决定了各个I/O操作的响应能力。

如果一个存储解决方案可以达到10,000 IOPS,但平均等待时间为50毫秒,则可能导致非常差的应用程序性能。 如果我们想达到10 毫秒的较高延迟目标,则存储解决方案可能仅能达到2,000 IOPS。

带宽 / 吞吐量

如果将IOPS 数值乘以(平均)I/O请求大小,则会获得带宽或吞吐量。 我们以 KB/s 和 GB/s 为单位声明存储带宽。

举个例子:如果我们发出1000 IOPS的工作量,请求大小为4 KB,那么我们将获得1000 x 4 KB = 4000 KB的吞吐量, 这大约是每秒4 MB。

队列深度

队列深度是一个介于1到〜128之间的数字,它表示平均有多少I/O请求(在运行中)排队。 拥有队列是有益的,因为队列中的请求可以以优化的方式(通常是并行方式)提交给存储子系统。 队列以延迟为代价提高了性能。

如果有某种存储性能监视解决方案,那么队列深度过长可能表明存储子系统无法处理工作负载。 可能还会观察到高于正常延迟的数字。 只要等待时间数仍在容许的范围内,就不会有问题。

这个世界上没有免费的东西, 较高的队列深度(充当缓冲区)确实会增加延迟,只能去追求一种权衡。

访问模式

顺序访问

顺序数据传输的一个示例是将一个大文件从一个硬盘复制到另一个硬盘。 从源驱动器读取大量顺序的(通常是相邻的)数据块并将其写入另一个驱动器。 备份作业还会导致顺序访问模式。

实际上,此访问模式显示了最高的吞吐量。

硬盘驱动器很容易,因为它们不必花费很多时间来移动读/写磁头,而可以花费大多数时间来读/写实际数据。

随机访问

I/O请求以看似随机的方式发布到存储介质, 数据可以存储在存储介质上的各个区域中。 这种访问模式的一个示例是使用大量数据库的服务器或运行许多虚拟机(全部同时运行)的虚拟化主机。

硬盘驱动器将不得不花费大量时间移动其读/写磁头,而仅花费很少的时间来传输数据。 吞吐量和IOPS都会下降(与顺序访问模式相比)。

实际上,大多数常见的工作负载(例如正在运行的数据库或虚拟机)会导致存储系统上出现随机访问模式。

存储介质性能特征

HDD

硬盘(HDD)是机械设备, 有一个带读/写头的手臂,数据存储在(多个)盘片上。

硬盘必须物理地移动读/写磁头才能满足读/写请求。 与固态硬盘(SSD)相比,这种机械特性使它们相对较慢。尤其是随机访问工作负载会导致硬盘花费大量时间在正确的时间将读/写磁头移动到正确的位置,因此用于实际数据传输的时间更少。

了解硬盘最重要的一点是,从性能角度(着眼于延迟)来看,更高的主轴速度会降低平均延迟。

转速RPM 延迟(ms) IOPS
5400 17-18 50-60
7200 12-13 7-8 75-85
10,000 7-8 120-130
15,000 5-6 150-180

由于单个I/O请求的等待时间会降低具有较高RPM的驱动器,因此可以在相同的时间内发出更多此类请求。 这就是IOPS值也增加的原因。

关于顺序吞吐量,我们可以说相当老的硬盘驱动器可以维持每秒100-150 MB的吞吐量。
具有更高容量的更现代的硬盘驱动器通常可以维持每秒200-270 MB的吞吐量。

小提示:顺序传输速度不是恒定的,并且取决于硬盘驱动器盘片上数据的物理位置。 随着驱动器装满,吞吐量会下降。 吞吐量可能下降百分之五十以上。因此,如果要计算传输特定(大型)数据集所需的时间,则需要考虑到这一点。

SSD

固态驱动器(SSD)基于闪存(芯片),没有移动部件。 SSD可以更快地处理I/O,从而显着降低延迟

通常,以毫秒(千分之一秒)为单位来衡量HDD的平均I/O延迟,而以微秒(百万分之一秒)为单位来衡量SSD I / O操作的延迟。

由于减少了每个I/O请求的等待时间,因此SSD在各种可能的方式上均胜过HDD。 即使是廉价的消费类SSD,也能以0.15毫秒(150纳秒)的延迟至少维持约5000+d的 IOPS。 该延迟比企业15K RPM硬盘的最佳延迟大约高达40倍。

固态硬盘通常可以并行处理I/O请求, 这意味着,在运行中有更多I/O请求的较大队列深度可以显示出更高的IOPS,而延迟的增加有限(但并非微不足道)。

在所有相关指标上,SSD的性能均优于HDD,但价格与容量相关。

小提示:SSD不适用于数据的归档存储。 数据作为电荷存储在芯片中,这些电荷会随着时间的流逝而减少。 尽管最合适的存储方法可能是磁带,但是即使硬盘驱动器也更适合脱机归档。

SSD实际性能与广告性能

宣传许多SSD的性能为80,000-100,000 IOPS,且延迟相当大。 根据工作负载,可能只会观察到部分性能。

那些高80K-100K IOPS的大多数数据是通过对非常高的队列深度(16-32)进行基准测试而获得的。 SSD可以从这种队列深度中受益,因为它可以并行处理许多这些I/O请求。

请注意:如果工作量不适合该模式,则可能会发现性能降低。如果我们看一下上面的Intel SSD图表,我们可能会注意到随着队列深度的增加,了解您自己的工作负载的特征很重要。

RAID

如果将多个硬盘驱动器组合在一起,则可以创建RAID阵列。 RAID阵列是一种虚拟存储设备,其容量和性能超过单个硬盘驱动器。 这样可以在单个计算机的范围内扩展存储。

RAID还用于(或主要用于)通过确保冗余(驱动器故障不会导致数据丢失)来确保可用性。 但这里,我们重点关注其性能特征。

SSD可以实现高的连续吞吐速度,每秒可达到数GB。 单个硬盘驱永远无法达到这些速度,但是如果将许多硬盘组合在一起形成RAID阵列,则速度可能会非常接近。

RAID还提高了随机访问模式的性能。 RAID阵列中的硬盘可以协同工作以服务那些I/O请求,因此RAID阵列的IOPS明显高于单个驱动器, 更多的驱动器意味着更多的IOPS。

将SSD放入RAID是有意义的。 尽管它们比硬盘驱动器更可靠,但它们可能会失败。 如果关心可用性,RAID是不可避免的。 此外,与硬盘驱动器相同的好处:将资源集中在一起,与单个SSD相比,可以实现更高的IOPS数值和更大的容量。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342