Skip to content

Commit

Permalink
Update 7.5-存储.md
Browse files Browse the repository at this point in the history
  • Loading branch information
YanjieGao authored Jun 23, 2022
1 parent e4c68c1 commit a231057
Showing 1 changed file with 7 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -144,23 +144,23 @@ if __name__ == '__main__':
缓存与磁盘成本性能选型经验法则(Rule Of The Thumb)- 五分钟法则 “The Five-Minute Rule”:当进行缓存系统选型,我们常常忽略成本的影响,如果当前不仅考虑性能加速本身,还综合考虑成本等因素,又该如何取舍呢?Jim Gray 和 Franco Putzolu 在 1987 年发表 “[The 5 Minute Rule for Trading Memory for Disk Accesses and The 10 Byte Rule for Trading Memory for CPU Time](https://www.hpl.hp.com/techreports/tandem/TR-86.1.pdf)” ,10 年后 Jim Gray 和 Goetz Graefe 1997 年发表 “[The Five-Minute Rule Ten Years Later,
and Other Computer Storage Rules of Thumb](https://dl.acm.org/doi/10.1145/271074.271094)” 在其中论述当考虑成本性能综合因素,什么时候选择使用内存更划算,什么时候适合加磁盘更划算?但是这个原则也适合其他层级的两级存储选型,或者计算和存储权衡(例如,压缩和解压缩数据相比节省的存储空间占用哪个更划算?)。以 97 年工作中介绍其主要算方式为:

对随机访问磁盘页(Randomly Accessed Pages)的场景下,五分钟法则基于权衡内存成本和磁盘的访问成本:缓存页数据在额外的内存可以节省磁盘 I/O。收支平衡(Break-Even)出现在当数据页常驻缓存于内存的成本($dollar/page/sec$)和磁盘的每秒访问成本($dollar/disk\_access/sec$)持平。通俗理解就是缓存单位页占用的内存所花的购买所需对应内存的成本,和通过访问磁盘获取这个单位页所需要购买的磁盘的成本持平是存在一个时间间隔,小于这个时间间隔相当于要更多次访问磁盘,花费更多的访问磁盘成本,那么缓存在内存更划算,如果访问间隔高于这个间隔意味着数据不常访问,访问磁盘单页的成本是低于缓存该页的成本。这个达到临界持平的时间间隔计算方式为:
对随机访问磁盘页(Randomly Accessed Pages)的场景下,五分钟法则基于权衡内存成本和磁盘的访问成本:缓存页数据在额外的内存可以节省磁盘 I/O。收支平衡(Break-Even)出现在当数据页常驻缓存于内存的成本($Dollar/Page/Sec$)和磁盘的每秒访问成本($Dollar/DiskAccess/Sec$)持平。通俗理解就是缓存单位页占用的内存所花的购买所需对应内存的成本,和通过访问磁盘获取这个单位页所需要购买的磁盘的成本持平是存在一个时间间隔,小于这个时间间隔相当于要更多次访问磁盘,花费更多的访问磁盘成本,那么缓存在内存更划算,如果访问间隔高于这个间隔意味着数据不常访问,访问磁盘单页的成本是低于缓存该页的成本。这个达到临界持平的时间间隔计算方式为:

$$
BreakEvenReferenceInterval (seconds) = \frac{PagesPerMBofRAM}{AccessPerSecondPerDisk} \times \frac{PricePerDiskDrive}{PricePerMBofRAM}
$$

- $BreakEvenReferenceInterval$:相同数据页(Page)在工作负载中,间隔多久(也就是BreakEvenReferenceInterval)会被再次访问。公式中计算出的是临界阈值,读者可以根据负载中的统计数值和这个阈值比较,如果低于其阈值,代表访问频繁,单次访问磁盘的成本已经超出内存,用内存缓存更划算。反之理解就是,如果负载访问间隔超出阈值,数据访问不频繁,购买和放在内存中成本高于隔一段时间再次访问磁盘成本,购买磁盘不如放磁盘划算。
- $BreakEvenReferenceInterval$:相同数据页(Page)在工作负载中,间隔多久(也就是 $BreakEvenReferenceInterval$)会被再次访问。公式中计算出的是临界阈值,读者可以根据负载中的统计数值和这个阈值比较,如果低于其阈值,代表访问频繁,单次访问磁盘的成本已经超出内存,用内存缓存更划算。反之理解就是,如果负载访问间隔超出阈值,数据访问不频繁,购买和放在内存中成本高于隔一段时间再次访问磁盘成本,购买磁盘不如放磁盘划算。

以另一种更细节方式理解,也就是单位数据页会间隔 $BreakEvenReferenceInterval$ 被再次访问,而 $BreakEvenReferenceInterval$ 间隔内,极限情况(用满磁盘 I/O)下磁盘最多支撑 $BreakEvenReferenceInterval \times AccessPerSecondPerDisk$ 次页访问,且总购置磁盘成本为 $PricePerDiskDrive$,所以对当前页其单页访问成本(也就是用此段时间内磁盘最多支撑的页访问次数切分总成本)为 $Cost_{pageDiskAccess} = \frac{PricePerDiskDrive}{BreakEvenReferenceInterval \times AccessPerSecondPerDisk}$,而单页的内存常驻成本为 $Cost_{mem} = \frac{PricePerMBofRAM}{PagesPerMBofRAM}$,我们通过 $min(Cost_{mem}, Cost_{pageDiskAccess} )$ 选择成本最小的方案。
以另一种更细节方式理解,也就是单位数据页会间隔 $BreakEvenReferenceInterval$ 被再次访问,而 $BreakEvenReferenceInterval$ 间隔内,极限情况(用满磁盘 I/O)下磁盘最多支撑 $BreakEvenReferenceInterval \times AccessPerSecondPerDisk$ 次页访问,且总购置磁盘成本为 $PricePerDiskDrive$,所以对当前页其单页访问成本(也就是用此段时间内磁盘最多支撑的页访问次数切分总成本)为 $Cost_{PageDiskAccess} = \frac{PricePerDiskDrive}{BreakEvenReferenceInterval \times AccessPerSecondPerDisk}$,而单页的内存常驻成本为 $Cost_{Mem} = \frac{PricePerMBofRAM}{PagesPerMBofRAM}$,我们通过 $min(Cost_{Mem}, Cost_{PageDiskAccess} )$ 选择成本最小的方案。

- $PagesPerMBofRAM$:$128 \quad pages/MB (8KB pages)$ (97 年数值)
- $PagesPerMBofRAM$:$128 \quad Pages/MB (8KB pages)$ (97 年数值)

- $AccessPerSecondPerDisk$:$64 \quad access/sec/disk$ (97 年数值)
- $AccessPerSecondPerDisk$:$64 \quad Access/Sec/Disk$ (97 年数值)

- $PricePerDiskDrive$:$2000 \quad dollar/disk (9GB + controller)$ (97 年数值)
- $PricePerDiskDrive$:$2000 \quad Dollar/Disk (9GB + Controller)$ (97 年数值)

PricePerDiskDrive可以综合考虑控制器(Controller)等成本,也可以建模进磁盘的寿命衰减等因素。
$PricePerDiskDrive$ 可以综合考虑控制器(Controller)等成本,也可以建模进磁盘的寿命衰减等因素。

在 97 年 Jim Gray 等使用以下的数据计算出 $BreakEvenReferenceInterval$ 是 266 秒,接近 5 分钟,那么读者可以思考,在你面对的基础架构采购的场景,以上几个数值换算成当前的性能成本数值,在当前人工智能基础架构下是多少的 $BreakEvenReferenceInterval$ ?以及测试你的负载自身的 $BreakEvenReferenceInterval$ 是多少?进而从成本角度思考是否追加更大的内存进行数据缓存加速数据加载。在企业级场景成本是不可忽视的因素,请读者同时对比第 8 章推理芯片章节,TPU 的设计历史中的性能成本考量,打破唯性能论的思考系统设计的方式。

Expand Down

0 comments on commit a231057

Please sign in to comment.