《信息存储与管理(第二版):数字信息的存储、管理和保护》——2.10 基于应用程序的需求和磁盘性能的存储设计

简介:

本节书摘来异步社区《信息存储与管理(第二版):数字信息的存储、管理和保护》一书中的第2章,第2.10节,作者:【新加坡】G.Somasundaram ,【美】Alok Shrivastava,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.10 基于应用程序的需求和磁盘性能的存储设计

信息存储与管理(第二版):数字信息的存储、管理和保护
应用程序的存储需求分析通常都是从确定存储容量开始的。这可以根据文件系统的大小和数量,以及应用程序将要使用的数据库部件来评估确定。应用程序的I/O大小、特点及其在工作峰值产生的I/O数量是影响磁盘性能、I/O响应时间和存储系统设计的其他因素。块大小取决于应用程序所依赖的文件系统和数据库。数据库环境中的块大小通常是由底层数据库引擎及其环境变量集所控制的。

磁盘服务时间(Ts)是衡量磁盘性能的一个关键指标。Ts-和磁盘利用率(U)决定了一个应用的I/O响应时间。正如本章前面提到的那样,总的磁盘服务时间(Ts)是寻道时间(T)、旋转延迟(L)和内部传输时间(X)的总和。

Ts = T + L + X

给定如下磁盘实例,磁盘的具体规格是这样的:

在一个随机I/O环境中,平均寻道时间为5ms。因此,T=5ms。
磁盘旋转速率为15 000rpm(250转每秒)——由此可以确定旋转延迟(L),大概是旋转一圈时间的一半,即L=(0.5/250 rps,以ms为单位)。
内部数据传输率为40MB/s,其内部传输时间(X)可以根据I/O块大小来计算。比如,如果块大小为32KB,那么X=32KB/40MB。
由此,I/O控制器服务一个大小为32KB的块所用的时间为:

Ts =5ms+(0.5/250)+32KB/40MB=7.8ms。

每秒钟最大的I/O服务次数,即IOPS为(1/Ts)=1/(7.8×10-3)=128 IOPS。

6a9bc20e877a9c81ca0ba32712a35d82a263a5bf

对不同块大小,IOPS的范围从116到140,这也意味着可以达到极高的利用率(接近100%)。如节所述,当磁盘控制器利用率升高时,应用的响应时间R也将增加。还是前面的例子,块大小为32 KB,在磁盘控制器利用率为96%时,响应时间(R)为:

R=Ts/(1-U)=7.8/(1-0.96)=195 ms

如果一个应用要求更快的响应时间,那么磁盘利用率必须维持在70%以下。同样是32 KB的块大小,磁盘利用率在70%时,响应时间急剧降低,为26 ms。然而,在磁盘利用率更低时,IOPS也会减少。依然是32 KB的块大小,利用率接近100%时,磁盘可以执行的IOPS为128。在磁盘利用率为70%的IOPS为89(128×0.7),这表明磁盘可以执行的I/O操作数是一个重要的因素。在为应用计划存储需求时,需要重点考虑这个因素。

应用程序的存储需求是要根据满足应用程序的存储容量和IOPS来确定的。如果一个应用程序需要的磁盘空间,那么当前一块磁盘就能满足这种需求。然而,如果应用程序的I/O需求很高时,性能下降,一块磁盘就无法满足高需求的I/O响应时间。

基于以上讨论,一个应用程序所需要的磁盘数(DR)可以通过如下方式计算得到:

DR = Max(DC, DI)

这里DC是满足容量需求的磁盘数量,而DI是满足IOPS需求的磁盘数量。

让我们通过一个例子来加深理解。

假设一个应用程序的容量需求为1.46TB,应用程序最高负载时的IOPS为9 000,磁盘制造商提供的磁盘容量为146GB,转速为15 000rpm,可以达到的最大IOPS为180。

在这个例子中,为了满足容量需求,需要1.46TB/146GB=10个磁盘。

而为了满足高达9 000的IOPS需求,则需要50个磁盘(9 000/180)。结果,为了满足应用程序的需求,将需要50 = Max(10, 50)个磁盘。

对响应时间敏感的那些应用,磁盘需求数还必须以单个磁盘低于70%使用率时的IOPS来计算。依然使用这个例子,单个磁盘在70%使用率时的IOPS为180×70%=126 IOPS。那么满足应用IOPS需求的磁盘数量是9 000/126=72。

因此,满足这个应用程序的需求需要Max (10, 72) = 72 块磁盘。

在上面的例子中,从容量角度看,10块磁盘就可满足需求,但是满足性能需求则需要72块磁盘。为了从性能角度优化磁盘需求,出现了许多运行在实时环境下的解决方案,例如磁盘原生命令排序(disk native command queuing)、使用闪存盘、RAID以及使用缓存(cache memory)。RAID和高速缓存将分别在第3章和第4章详细讲述。

相关文章
|
6月前
|
存储 算法 调度
分页储存管理.分段储存管理.虚拟储存管理
分页储存管理和分段储存管理是操作系统中常用的两种内存管理方式。 1. 分页储存管理: - 基本原理:将物理内存和逻辑内存划分为固定大小的页面和页面框,使得逻辑地址空间和物理地址空间可以对应起来。进程的逻辑地址空间被划分为多个固定大小的页面,每个页面与一个物理内存页面框对应。通过页表将逻辑地址映射到物理地址,实现地址转换。 - 优点:简单、灵活,能够提供较大的逻辑地址空间,适用于多道程序设计和虚拟内存管理。 - 缺点:存在内部碎片,会造成一定的存储空间浪费。 2. 分段储存管理: - 基本原理:将进程的逻辑地址空间划分为若干个逻辑段,每个逻辑段代表一个逻辑单位,如代码
103 0
|
4天前
|
存储 数据安全/隐私保护
平台设计-联系信息的存储
之前说过平台的用户信息是集中存储的
|
5月前
|
存储 移动开发 算法
大容量存储(涉及到的硬盘存取的原理)
大容量存储(涉及到的硬盘存取的原理)
71 0
|
存储 缓存 固态存储
数据存储方式——KVELL:快速持续键值存储的设计与实现
数据存储方式——KVELL:快速持续键值存储的设计与实现
数据存储方式——KVELL:快速持续键值存储的设计与实现
存储分层:企业数据存储类型选择与优化
本文整理自2017云栖大会-成都峰会上阿里云存储服务产品专家周皓的分享讲义,讲义主要介绍了阿里云对象存储OSS的定义及其应用领域,从互联网数据访问特点和归档数据特点出发介绍了OSS的存储类型及应用存储特点,并分享了UGC应用存储优化和混合云数据备份示例。
1983 0