迅维网

标题: 为什么机械硬盘的缓存不是越大越好? [打印本页]

作者: 静静的读你    时间: 2017-12-6 11:23
标题: 为什么机械硬盘的缓存不是越大越好?
“如果硬盘采用容量更大的缓存,性能不但没有提高,反而降低硬盘提取数据的命中率。” 这句话怎么理解? 原文在此 http://m.zol.com.cn/article/2773659.html
作者: GRcSXZPy    时间: 2017-12-6 11:23
与当年比尔盖茨说640k内存可以满足一切应用一样,这句话就是胡说八道。

原因仅仅在于缓存的价格成本,与其它的无关。

当64k为主流的时候硬盘厂商会宣称64k就够了再大是浪费,当16M为主流的时候厂商会宣称16M就够了多余的缓存反而降低性能,不过现在,主流的缓存尺寸是64M或者128M,随着时间的推移与缓存价格的下降,厂商口中的最佳缓存数量会再次上升,毕竟消费者只需要听起来像真理的东西就够了。

另外,希捷已经实现了内置8G或16Gssd作为机械硬盘缓存(相当于把缓存做到8G或16G),而实测用8G到16G为机械硬盘缓存确实相比64M缓存大幅度提高了机械硬盘的性能。如果在这种事实面前,再说40M就够用,或者再说缓存越大反而性能下降,就是自己打脸了。
作者: 誓约之剑    时间: 2017-12-6 11:23
这句话是胡说八道。
作者: buffona    时间: 2017-12-6 11:23
其实就一个原因,越大在断电的时候越容易丢数据。特定环境中,我们使用的时候是关闭掉硬盘缓存,避免问题的
作者: xujiahui    时间: 2017-12-6 11:23
机械硬盘的缓存确实不是越大越好,但是:
“如果硬盘采用容量更大的缓存,性能不但没有提高,反而降低硬盘提取数据的命中率。”
这句话是错的。简单的归谬,如果缓存容量等于硬盘容量,那么缓存的命中率一定可以达到100%。

问题的关键是两点:
1)缓存的加速主要来自于避免重复操作、浪费时间。什么时候会重复操作?在硬盘上,只有同一块数据反复被存取的时候才发生重复操作。但一般的消费应用下,这些需要被反复存取的数据是很有限的。缓存容量大到一定程度之后,再扩大带来的性能增加微乎其微。在普通消费应用上,这个容量差不多截止于40MB(考虑使用易失缓存)。因此缓存不需要无限大的容量。
2)缓存不是没有成本的。它单位价格很高(相比硬盘本身而言);而且它一旦掉电就丢失了存在数据风险;它会使得硬盘逻辑结构变复杂。考虑这些因素,缓存大过一定程度之后就只增加成本和风险,不带来效益。

最终结果就是一般硬盘缓存只做几十到上百兆。
作者: fishbiscuit456    时间: 2017-12-6 11:23
因为缓存越大越贵,贵了你买不起,所以不好。
作者: wason1    时间: 2017-12-6 11:23
越大就越贵,买的人就少,对厂家很不好。
作者: oLjwRgTm    时间: 2017-12-6 11:23
你用膝盖想也知道不可能啊,最不济我不要全用还不行吗……
作者: hoei    时间: 2017-12-6 11:23
一派胡言
作者: BIGBON    时间: 2017-12-6 11:23
命中率由缓存空间、替换算法、请求到达分布所决定(通通都打回本科重学计算机组成原理和操作系统,软件学院就是渣,软件工程就是渣)。
例如,FIFO算法,增加缓存容量,但缓存命中率也会下降(不考虑请求到达分布),此即
缓存算法之belady现象。
再例如,LRU算法,当存在热点数据时(考虑请求到达分布),LRU的效率很好,但偶发性的、周期性的批量操作会导致LRU命中率急剧下降,缓存污染情况比较严重。此即请求到达分布问题。
至于缓存跟磁盘一样大,那就发生了本质变化,是另一种玩法:相变存储器有可能改变计算机体系结构。
作者: yPfiXGyC    时间: 2017-12-6 11:23
对方不想理你,向你扔过来一本《计算机组成原理》
作者: ejinjing    时间: 2017-12-6 11:23
这种评测笑笑就好,还不如去卡巴或Chiphell。
写入缓存能提高写入效率,然而意外停电容易GG(虽然现在硬盘有停电保护),读缓存能存放使用频率高的数据,这个越大是越好,大到和容量一样大,再加上可持久化,再去掉机械储存部分,就写作SSD读作固态硬盘。
而现在妥协的产物就是混合硬盘。
作者: yanbing2796    时间: 2017-12-6 11:23
命中首先是发生在缓存中的,所以你就知道这句话胡说八道在哪了
作者: 誓约之剑    时间: 2017-12-6 11:23
泻药,额,多少年没回答了。
缓存容量大不管用LRU,ARC什么策略肯定是命中率提高,然而这带来了成本提高的问题。对于CPU倒是除了这个问题还有延迟提高的问题。
对于固态硬盘因为需要加载FTL和当缓存,一般附带的颗粒比较大,当然也有不带或者SF那种集成的,性能受影响。不管HDD SSD因为异常断电后如果是写入缓存需要写入到硬盘,如果没有UPS或者大容量电容支持,会造成数据丢失,如果硬盘做16Gcache也会出问题啊,PrimoCache可以试试,SSHD除外。
作者: 给我闪    时间: 2017-12-6 11:23
且不跟你说缓存本身这件事,但你这句话让一众混合硬盘脸往哪里搁?
作者: cy4080    时间: 2017-12-6 11:23
缓存大的硬盘 会存在一个问题 就是提取数据失败,造成响应超时,我新买的拯救者 玩游戏爆盘,我想我R新电脑新硬盘就这样?我查了一下硬盘,128m缓存的5400转的硬盘,就是因为缓存太大造成提取失败,响应超时,我老本子上用的32m缓存的黑盘 性能也很强劲,所以说缓存不是越大越好,而是要配合其他硬件一起提升。
作者: wangyoo2003    时间: 2017-12-6 11:23
是啊,最后intel出了傲腾作为hdd缓存,但是价格太贵(不如上ssd了)
作者: rt45rti    时间: 2017-12-6 11:23
请看CSAPP关于存储器一章,假设缓存无限大,那么就只有冷不命中,后续访问全命中。
作者: 静静的读你    时间: 2017-12-6 11:23
来来来,极端值分析,如果硬盘缓存大到全是缓存,比方说全用不挥发存储器例如PCM,那你开机就和点下鼠标消除屏保一样快。
原文说的大硬伤重点在转速,其实他可能想表达的是,转速低了,即使缓存增加了总体性能可能也会下降。但是扯到影响命中率就真的牵强了。
作者: 快乐.每一天    时间: 2017-12-6 11:23
就是因为硬盘的速度太慢所有才需要缓存,当硬盘的速度足够快的时间就不用要缓存了……
缓存当然越大越好,因为从缓存读写数据比较快。
作者: keajoo    时间: 2017-12-6 11:23
因为大了就贵
太大了就买不起
那就不好了




欢迎光临 迅维网 (https://www.chinafix.com/) Powered by Discuz! X3.4