`
younglibin
  • 浏览: 1211234 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

五分钟法则(five minute rules)

 
阅读更多

1987年,Jim GrayGianfranco Putzolu推出了著名的5分钟法则[Gray 1987],他们通过内存,硬盘的性能以及当时的成本,给出了这样的公式:BreakEvenIntervalinSeconds =

(PagesPerMBofRAM /AccessesPerSecondPerDisk) × (PricePerDiskDrive /PricePerMBofRAM)。并由该公式得到了5分钟左右的近似值,因此做出这样的判断,如果一个数据的访问周期在5分钟以内则存放在内存中,否则应该存放在硬盘中。其中:

PagesPerMBofRAM:表示内存每兆字节的Page数,如果page size = 4KB,则该值为1MB/(4KB/page) = 256 page/MB

AccessesPerSecondPerDisk:每块磁盘每秒支持的最大IO请求数,如下表所示为250Page/(Second*Disk)

(PagesPerMBofRAM /AccessesPerSecondPerDisk):表示1兆的空间通过磁盘访问的方式所需要的秒数。256/200 = 1.25(Second*Disk)/MB,表示1兆字节需要1.25个盘秒来完成(类似工作任务按人月来做单位)。

PricePerDiskDrive:表示一块磁盘的成本,如下表所示为48$/disk

PricePerMBofRAM:表示每兆内存的代价,如下表所示为50$/(2048)=0.024$/MB

PricePerDiskDrive/ PricePerMBofRAM:表示用来买磁盘的钱可以买多少兆内存。48/0.024=2000MB /disk

(PagesPerMBofRAM /AccessesPerSecondPerDisk)* (PricePerDiskDrive/ PricePerMBofRAM):表示用磁盘读取的耗费时间界限,2000MB *1.25=2500second,合41min。如果一条数据的访问周期低于41分钟,则应该放在内存中,否则应该放在磁盘中。

对于这个公式我们可以这样理解。

1MB 永久存放在内存中的代价是0.024$/MB1MB数据使用一次相当于花0.024$换来的。

1MB 存放在硬盘中的代价是 1.25 (second*disk)/MB *48($/disk) / 1个访问周期 = 1.25 *48/2500= 0.024$1MB数据放在硬盘中,2500秒访问一次,花0.024$

如果访问周期小于2500秒,放在硬盘中的代价大,周期大于5100秒,放在硬盘中就赚了。

不难计算,如果将固态磁盘看作内存,则可得到48/(780/(32*1024))*(256/200)/60=43分钟。如果将固态硬盘看作硬盘,则可得到780/(50/(2*1024))*(256/35000)/60=4分钟,这是对5分钟法则的很好的近似。另外修改每页的大小,也可以近似得到5分钟这个值,请读者自行计算,[Goetz Graefe 2008]对该问题在2008年做了回顾,得到的结论是:5分钟法则在提出的20年后依然有效,但分化出两个5分钟法则,一个是把闪存看做硬盘,内存和闪存之间依然保持了5分钟法则,另外一个是在更大的page size情况下,闪存和硬盘依然保持了5分钟法则。并且对内存和磁盘的分界时间预测在未来的20是年将会达到5小时左右。

下表数据来自amazon.com, [Intel flash],仅作举例之用。

 

项目

内存(现代某服务器单颗内存

固态硬盘(IntelSSD

硬盘(希捷某服务器硬盘)

价格

50$

780$

48$

容量

2G

32G

500G

其他

服务器一般至少8个以上的内存插槽。

固态硬盘因品牌不同价格差异较大。

4KBpage情况下,35000(IOPS)

 

4KBpage情况下,200IO/second

备注

 

SSD读和写差距较大。举例使用的读取的IOPS来进行计算。

这里的每秒IO表示随机读写的情况,顺序读写一般可达30000次左右。可以使用HD tuneIometer等工具进行测试。

在工作中实际接触的服务器可以支持最大单核16G内存,64个扩展槽,达到1TB的内存,但在举例过程中,仅考虑基本情况。有兴趣的读者可以根据工作环境的服务器情况做相应计算,看看得出的结果。

 

五分钟法则有哪些具体的应用呢?搜索引擎的索引非常巨大,每次上线过程都要经过很多步骤,其中一条叫做cache warming,即对那些常用的查询词,人工的对索引系统发起一次查询,使得在硬盘中的索引能够“上浮”到内存中,这样在下一次真实用户来查询时,无需磁盘读取,而直接从内存中读出,那么将多少常用词载入到内存中呢?什么样的查询频率的数据值得载入内存中呢?

 

事实上,计算机硬件发展到今天,CPU是最快速的,内存的发展次之,最慢的是磁盘,因此体系架构也需要考虑硬件发展的现状,结合五分钟法则和运营成本的考虑,查询频率达到一定频繁程度的查询词的倒排表可以放到内存中,否则应该放在内存中,一般那些诸如电话号码查询,邮编,生僻姓名的查询词通常都在磁盘中,而常用的娱乐明星的姓名,影视歌曲等查询词的倒排表都被事先载入了内存。

 

除此之外,五分钟法则还可以用来根据业务需要,来指导硬件采购,一些数据库提供商往往能够通过一些科学方法来为客户的实际业务需要来配置最优的服务器。

 

【推荐阅读】

 

[Goetz Graefe 2008] The Five-Minute Rule 20 Years Later, Communications of the ACM 
Vol. 52 No. 7, Pages 48-59 ,http://cacm.acm.org/magazines/2009/7/32091-the-five-minute-rule-20-years-later/fulltext

 

[Gray 1987]Gray, Jim; Putzolu, Gianfranco R. (1987), "The 5 Minute Rule for Trading Memory for Disk Accesses and The 10 Byte Rule for Trading Memory for CPU Time", Proceedings of the ACM SIGMOD Conference, pp. 395–398 

分享到:
评论

相关推荐

    Five_rules_for_creating_great_presentations

    根据给定文件的信息,我们可以提炼出五个创建出色演示文稿的关键规则。这五个规则由Duarte提出,该公司在为世界顶级品牌开发视觉故事方面拥有超过20年的经验。以下是这五个规则及其详细解释: ### 规则一:提高音量...

    JAX-WS Five Minute Tutorial 源码

    本教程将深入探讨JAX-WS的核心概念,以及如何在五分钟内快速上手。 **一、JAX-WS基础** 1. **接口定义服务**:在JAX-WS中,服务通常通过Java接口来定义。这个接口包含了服务提供的操作(方法),并且使用了`@...

    Linear and Logic Five Minute Guide (Rev. B)

    ### Linear and Logic Five Minute Guide (Rev. B) #### 引言 《Linear and Logic Five Minute Guide》(修订版B)是一份由德州仪器(Texas Instruments, TI)提供的指南文档,旨在帮助工程师和技术人员快速了解...

    How_Safety_Fits_into_the__Five_Golden_Rules__of_Electrification.pdf

    How Safety Fits into the "Five Golden Rules" of Electrification 如何将电气化的五大黄金法则用于安全领域

    五分钟斯多葛派「Five Minute Stoic」-crx插件

    浏览网页时很容易分心。...五分钟Stoic是一个扩展程序,当您在Chrome中单击“新建标签”时,它会显示Stoic报价。 此操作使您可以更加专心,并希望停下来思考一下Stoics的古老智慧。 支持语言:English

    Top Five Rules for SymbianS60 newbie

    免分 英文版 给初学者的5点金科玉律 关于塞班S60

    cardfive 7.7中文版

    《深入解析CardFive 7.7中文版:专业制卡软件的全面指南》 在信息技术领域,高效、专业的软件工具对于提高工作效率至关重要。本文将深入探讨CardFive 7.7中文版,这是一款专为制卡设计的软件,广泛支持包括Zebra、...

    CardFive5.0中文注册版

    《CardFive5.0中文注册版》是一款专为中文用户设计的卡片管理软件,它集信息存储、组织和检索于一体,适用于个人、企业以及团队等多种场景。这款软件的强大之处在于其简洁易用的界面和全面的功能,使得用户可以高效...

    CardFive7.7中文制卡软件

    《CardFive7.7中文制卡软件:安装与汉化详解》 CardFive7.7是一款专门用于制作卡片的专业软件,其7.7版本引入了更丰富的设计元素和功能优化,使得用户在创建个性化卡片时拥有更多的选择。本文将详细介绍如何安装这...

    证卡打印机CardFive7.7中文.zip

    证卡打印机CardFive 7.7是一款专业的卡证制作与打印软件,专为需要制作个性化身份证、会员卡、员工卡等各类卡片的用户设计。这款软件以其稳定性和易用性在行业内享有较高声誉,是许多企业和个人的首选工具。本文将...

    CardFive7.7(制卡软件)

    《CardFive7.7:一款专业制卡软件的深度解析》 CardFive7.7是一款专为用户设计的高效制卡软件,它以其强大的功能、易用的操作界面和丰富的模板库,深受广大用户喜爱。这款软件的核心在于为用户提供便捷、个性化的...

    斑马卡机编辑软件cardfive

    斑马卡机编辑软件CardFive是一款专为斑马证卡打印机设计的强大编辑工具,它提供了丰富的功能,使得用户能够高效地创建、编辑和管理各种证卡打印任务。这款软件不仅适用于初学者,也满足了专业人士对个性化和专业设计...

    cardfive7.7

    Cardfive 使用简易说明 Cardfive 是一款功能强大的制卡软件,提供了多种功能,使用户可以轻松地设计和打印卡片。在本篇文章中,我们将对 Cardfive 的使用方法进行详细的介绍,从基本操作到高级功能,帮助用户快速...

    CardFive7.7中文.rar

    Card Five证卡打印机制卡软件Card Five 简体中文版CardFive7.7 ☆ 专业的证卡打印机编辑软件 ☆ 支持照片、条形码、图片、文字、印章 ☆ 支持数据库添加 ☆ 我公司有详细的使用教程和案例分享 ☆ 如有需要请来电咨询...

    Five Minute Stoic-crx插件

    五分钟静态是一个扩展,当您单击... 时,它很容易在浏览Web时分心。 五分钟静态是一个在Chrome中单击“新建”选项卡时显示Sto旋转报价的扩展。 这一行动让您更加谨慎,希望暂停并反思Stoics的古老智慧。

    CardFive7.7中文

    CardFive7.7中文证卡打印工具,硬盘安装版本。证卡打印得力助手

    CardFive5.1

    《斑马P310与CardFive5.1:打造高效智能制卡解决方案》 在IT行业中,数据安全和身份识别的重要性不言而喻。斑马P310是一款专业级的桌面式智能卡打印机,它以其高效、精确的打印效果和广泛的兼容性在制卡领域中备受...

    CardFive7.7.rar

    CARDFIVE是用于塑料照片身份证的设计和打印软件。将设计链接到数据库,对磁条进行编码,对智能卡进行处理,创建效果并管理覆盖图,全息图或临时色带。使用DCL(直接命令语言)在市场上最流行的证卡打印机上以及几乎...

    cardfive使用说明

    cardfive 使用说明 CardFive 软件使用说明旨在帮助用户快速掌握卡片制作软件的使用方法,本文将通过详细的步骤指导用户如何设计和制作单张卡片、利用数据库进行成批处理,并对软件的界面和功能进行了详细的介绍。 ...

Global site tag (gtag.js) - Google Analytics