无论是固态硬盘还是机械硬盘,在选择硬盘的时候很多人都会参考硬盘缓存这个参数,觉得缓存嘛越大越好,但是真的是这样吗?缓存的作用搞清楚了吗?下面我们来详细聊聊硬盘缓存的作用。
硬盘的缓存作用:
一是预读取。当硬盘受到CPU指令控制开始读取数据时,硬盘上的控制芯片会控制磁头把正在读取的簇的下一个或者几个簇中的数据读到缓存中(由于硬盘上数据存储时是比较连续的,所以读取命中率较高),当需要读取下一个或者几个簇中的数据的时候,硬盘则不需要再次读取数据,直接把缓存中的数据传输到内存中就可以了,由于缓存的速度远远高于磁头读写的速度,所以能够达到明显改善性能的目的;
二是对写入动作进行缓存。当硬盘接到写入数据的指令之后,并不会马上将数据写入到盘片上,而是先暂时存储在缓存里,然后发送一个“数据已写入”的信号给系统,这时系统就会认为数据已经写入,并继续执行下面的工作,而硬盘则在空闲(不进行读取或写入的时候)时再将缓存中的数据写入到盘片上。虽然对于写入数据的性能有一定提升,但也不可避免地带来了安全隐患——如果数据还在缓存里的时候突然掉电,那么这些数据就会丢失。对于这个问题,硬盘厂商们自然也有解决办法:掉电时,磁头会借助惯性将缓存中的数据写入零磁道以外的暂存区域,等到下次启动时再将这些数据写入目的地;
最后是临时存储最近访问过的数据。有时候,某些数据是会经常需要访问的哦,硬盘内部的缓存会将读取比较频繁的一些数据存储在缓存中,再次读取时就可以直接从缓存中直接传输。
而且还有个缓存算法问题。如果算法不优秀,命中率就不会高,这样大容量缓存形同虚设,甚至会出现掉速问题。另外,这还要结合硬盘本身的单碟容量、转速来决定。比方说传输持续读写速度在150MB/s左右、单碟不超过1TB容量的机械硬盘,缓存64MB就足够,128MB显然有些浪费;只有那些单碟容量超过1TB、持续读写性能在200MB/s左右的机械硬盘,128MB的缓存才有意义哦。
硬盘缓存越大越好吗
大容量的缓存虽然可以在硬盘进行读写工作状态下,让更多的数据存储在缓存中,以提高硬盘的访问速度,但并不意味着缓存越大就越出众。缓存的应用存在一个算法的问题,即便缓存容量很大,而没有一个高效率的算法,那将导致应用中缓存数据的命中率偏低,无法有效发挥出大容量缓存的优势。算法是和缓存容量相辅相成,大容量的缓存需要更为有效率的算法,否则性能会大大折扣,从技术角度上说,高容量缓存的算法是直接影响到硬盘性能发挥的重要因素。
大缓存不一定意味着高性能,当前很多采用128M以上大缓存规划的机械硬盘采用了SMR叠瓦磁记录技术,增大缓存容量是为了降低SMR带来的性能衰减幅度。