为什么SSD随机读和写性能差别大?

2024-05-30 02:08
文章标签 性能 随机 ssd 差别

本文主要是介绍为什么SSD随机读和写性能差别大?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

          SSD是一种基于闪存的存储技术,有着与旋转磁盘不同的性能特性。由于CPU按顺序访问逻辑磁盘块,故SSD的顺序读和写的性能相当,顺序读比写稍微快一点。不过,当CPU按随机顺序访问逻辑块时,写比读慢一个数量级。

       造成这种差别是由底层闪存的基本属性决定的,对闪存来说,数据是以页为单位读写的,只有在一页所属的块整个被擦除后,才能随机写这一页(通常是指该块的所有位都被置1),不过,一旦一个块被擦除了,块中每一个页都可以不需要再进行擦除就写一次。随机写很慢的原因有两个:

            1. 擦除块需要相对较长的时间,1ms级的,比访问页所需时间要高一个多数量级。

            2.如果写操作试图修改一个包含已经有数据(也就是不全为1)的页,那么这个块中所有带有用数据的页都必须拷贝到一个新(擦除过的)块,然后才能进行对页的写操作。


        制造商已经在闪存翻译层中实现了复杂的逻辑,试图抵消擦写块的高昂代价,最小化内部写的次数,但是随机写的性能不太可能可以和读一样好。






参考书籍:CSAPP

这篇关于为什么SSD随机读和写性能差别大?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1015282

相关文章

Java中如何优化数据库查询性能?

Java中如何优化数据库查询性能? 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入探讨在Java中如何优化数据库查询性能,这是提升应用程序响应速度和用户体验的关键技术。 优化数据库查询性能的重要性 在现代应用开发中,数据库查询是最常见的操作之一。随着数据量的增加和业务复杂度的提升,数据库查询的性能优化显得尤为重

如何在OS中获得SSD的寿命耐久度

这里还是以DELL的机器为例,通常DELL的服务器带有的磁盘会有显示SSD耐久度,当然也不排除SSD更新太快,有部分SSD无法在戴尔的服务器上查看到SSD的耐久度,但实际上本身只要是SSD肯定还是可以有方法查看SSD的耐久度,可以通过OS的方式进行查看,以RHEL7.9为例 首先我们需要下载安装DELL的PERCCLI的阵列卡工具,该工具可以很好的查看DELL服务器上的阵列卡对应的信息,如阵列卡

Clickhouse 的性能优化实践总结

文章目录 前言性能优化的原则数据结构优化内存优化磁盘优化网络优化CPU优化查询优化数据迁移优化 前言 ClickHouse是一个性能很强的OLAP数据库,性能强是建立在专业运维之上的,需要专业运维人员依据不同的业务需求对ClickHouse进行有针对性的优化。同一批数据,在不同的业务下,查询性能可能出现两极分化。 性能优化的原则 在进行ClickHouse性能优化时,有几条

从JavaScript 数组去重看兼容性问题,及性能优化(摘自玉伯博客)

缘由 JavaScript 数组去重经常出现在前端招聘的笔试题里,比如: 有数组 var arr = ['a', 'b', 'c', '1', 0, 'c', 1, '', 1, 0],请用 JavaScript 实现去重函数 unqiue,使得 unique(arr) 返回 ['a', 'b', 'c', '1', 0, 1, ''] 作为笔试题,考点有二: 正确。别小看这个考点

Android性能优化系列之Bitmap图片优化

在Android开发过程中,Bitmap往往会给开发者带来一些困扰,因为对Bitmap操作不慎,就容易造成OOM(Java.lang.OutofMemoryError - 内存溢出),本篇博客,我们将一起探讨Bitmap的性能优化。 为什么Bitmap会导致OOM? 1.每个机型在编译ROM时都设置了一个应用堆内存VM值上限dalvik.vm.heapgrowthlimit,用来限定每个应用可

Java面试题:内存管理、类加载机制、对象生命周期及性能优化

1. 说一下 JVM 的主要组成部分及其作用? JVM包含两个子系统和两个组件:Class loader(类装载)、Execution engine(执行引擎)、Runtime data area(运行时数据区)、Native Interface(本地接口)。 Class loader(类装载):根据给定的全限定名类名(如:java.lang.Object)装载class文件到Runtim

Python中的性能分析和优化

在前几篇文章中,我们探讨了Python中的异步编程和并发编程,以及如何结合使用这些技术来提升程序性能。今天,我们将深入探讨如何分析以及优化Python代码的性能,确保应用程序的高效运行! 性能分析的基本工具和方法 在进行性能优化之前,首先需要对代码进行性能分析,找到性能瓶颈;Python提供了多种性能分析工具和方法,包括cProfile、line_profiler、memory_profile

基于协方差信息的Massive MIMO信道估计算法性能研究

1. 引言 随着移动互联网不断发展,人们对通信的速率和可靠性的要求越来越高[1]。目前第四代移动通信系统已经逐渐商用,研究人员开始着手研究下一代移动通信系统相关技术[2][3]。在下一代移动通信系统中要求下行速率达到10Gbps,这就要求我们使用更先进的技术和更宽的系统带宽。MIMO技术由于可以在不增加系统带宽和功率的前提下,成倍的提升系统容量和可靠性,已经广泛应用于各种无线通信系统中,但仅采用

vue项目开启Gzip压缩配置方法及性能优化建议

原文地址:https://jingyan.baidu.com/album/454316ab29d0c0f7a7c03a1f.html?picindex=1   vue 项目开启gzip压缩和部署 nginx 开启gzip优化性能   第一步,在vue项目中安装依赖并将productionGzip改为true,开启Gzip压缩: npm install --save-dev compres

JMeter对博客园进行性能测试

原文转自:http://www.cnblogs.com/yjlch1016/p/8320546.html 现在有这个一个场景: 普通用户在未登录的状态下, 先打开博客园的网站, 然后搜索JMeter的相关文章; 那么我们要对博客园进行性能测试, 分别模拟在100个、200个和300个并发的情况下, 博客园服务器的性能怎么样; 需要注意的是, 本次的场景是: 用户第一步同时打开博