本文主要是介绍为什么SSD随机读和写性能差别大?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
SSD是一种基于闪存的存储技术,有着与旋转磁盘不同的性能特性。由于CPU按顺序访问逻辑磁盘块,故SSD的顺序读和写的性能相当,顺序读比写稍微快一点。不过,当CPU按随机顺序访问逻辑块时,写比读慢一个数量级。
造成这种差别是由底层闪存的基本属性决定的,对闪存来说,数据是以页为单位读写的,只有在一页所属的块整个被擦除后,才能随机写这一页(通常是指该块的所有位都被置1),不过,一旦一个块被擦除了,块中每一个页都可以不需要再进行擦除就写一次。随机写很慢的原因有两个:
1. 擦除块需要相对较长的时间,1ms级的,比访问页所需时间要高一个多数量级。
2.如果写操作试图修改一个包含已经有数据(也就是不全为1)的页,那么这个块中所有带有用数据的页都必须拷贝到一个新(擦除过的)块,然后才能进行对页的写操作。
制造商已经在闪存翻译层中实现了复杂的逻辑,试图抵消擦写块的高昂代价,最小化内部写的次数,但是随机写的性能不太可能可以和读一样好。
参考书籍:CSAPP
这篇关于为什么SSD随机读和写性能差别大?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!