SSD上的OP指的是用户不可操作的容量,大小为实际容量减去用户可用容量,OP区域一般被用于优化操作如:WL,GC和坏块映射等。
OP一般分三层(见下图)。第一层容量固定为SSD标称容量的7.37%,这是因为标称容量采用千进制为单位,而NAND颗粒容量单位为1024进制,两者正好相差约7.37%。这部分空间被默认用于作OP。第二层OP是否存在及容量大小取决于厂商设置。第三层OP是用户在日常使用中可以分配的,像Fusion-IO公司还给其用户提供工具让他们自行调节大小以满足不同的耐用度及性能要求,一般用户也可以自己在初次分区的时候,不把所有的SSD容量都分满来达到相同目的,此处有一点要注意,若非首次分区就留出空间,必须要先进行全盘擦除(Secure Erase),否则没有效果。
虽然OP会减少SSD的可用容量,但有减少WA、提高寿命、性能的正面作用。请看下图:两个相同的64G SSD,左边的分区50G,右边的全部容量分区。格式化后容量分别为:46G和59G左右。
我们知道在操作系统下,要写入共59G的数据时,左边的盘必须删除13G的'无效'数据才行。右边的盘不需擦除就能写入所有59G数据,由SSD映射表的操作方式可知,删除后继续写入的数据在物理上会继续写入整个盘(写入OP1和OP2),在LBA上会覆盖被删除数据的地址。也就是说,同样写入59G数据,左边的盘已经包含了13G"无效"数据了。(那些被重映射到预留空间的数据,原地址数据就是"无效"、"过期"的)。所以说图中SSD里LBA上数据"有效"的机会比右边要少,因为LBA容量小(分区小),所以在做垃圾回收处理时,需要复制的"有效"数据也少了,自然效率就提高了。
一般来说,建议在不支持Trim或对SSD的性能有较高要求的时候,如数据库等类的应用,增加一定比例的第三层OP容量(此空间需要先做HDD ERASE,保证没有被使用过),可以很好的起到保持速度,提高寿命的作用。(如必须用SSD组建RAID时,强烈建议留部分OP容量以弥补没有Trim产生的影响。)
 

While solid-state drives (SSDs) are often similar to mechanical Hard Disk Drives (HDDs) in physical dimensions (e.g., height, width and length) and external interface (e.g., SATA or SAS interface), the internal low level operation and components of an SSD differ vastly from the spinning magnetic platter design of an HDD.

After an SSD is assembled, the SSD manufacturer can reserve an additional percentage of the total drive capacity for Over-Provisioning (OP) during firmware programming. Over-provisioning improves performance and often increases the endurance of the SSD, helping the drive last longer due to the SSD Controller having more Flash NAND storage available to alleviate NAND Flash wear over its useful life.

To calculate the over-provisioned (OP) percentage of an SSD, the formula in Figure 1 can be used.

Percentage Over-provisioning =

Physical Capacity - User Capacity


User Capacity

Figure 1. Over-provisioning percentage formula.

It is common to see 7 percent overprovisioning present in many SSDs. See Figure 2 for a breakdown of physical capacity present in an SSD versus available user capacity after overprovisioning.

Physical capacity User capacity % Over-Provisioning Application Class
64 GB 60 GB 7% Read Intensive
96 GB 90 GB 7% Read Intensive
128 GB 120 GB 7% Read Intensive
128 GB 100 GB 28% More Write Intensive
256 GB 240 GB 7% Read Intensive
256 GB 200 GB 28% More Write Intensive
512 GB 480 GB 7% Read Intensive
512 GB 400GB 28% More Write Intensive
1024GB 960GB 7% Read Intensive
1024GB 800GB 28% More Write Intensive
2048GB 1800GB 14% Read Intensive
2048GB 1600GB 28% More Write Intensive

Figure 2 Over-provisioning based on capacity and application class

转自:

https://www.kingston.com/us/ssd/overprovisioning

http://blog.csdn.net/guojing3625/article/details/10136551

[硬件知识]OP(Over-provisioning)预留空间的更多相关文章

  1. 硬件知识整理part4--0欧电阻在电路中的应用

    逝者如斯夫,不舍昼夜. --<论语子罕篇> 说起0欧电阻,必须先铺垫一下电路中的各种地. 先说一下,地是什么??地是参考0电位,所有电压都是参考地得出的,地的标准要一致,故各种地应短接在一 ...

  2. 硬件知识整理part2--电阻在反馈网络中的应用

    学而不厌,诲人不倦,不知老之将至.--孔子 电阻作为电路中基本的元器件之一.在电路设计中,我们有时会使用欧姆定律来大致估计一下电阻值的大小,但是大多时候我们是不用去过多考虑电阻值的大小,像我这样大方的 ...

  3. Cisco的互联网络操作系统IOS和安全设备管理器SDM__路由器软、硬件知识

    路由器软.硬件知识 1.路由器的组件: 组件 解释 Bootstrap 存储在ROM中的微代码,bootstrap用于在初始化阶段启动路由器.它将启动路由器然后装入IOS POST(开机自检) 存储在 ...

  4. 硬件知识整理part3--电阻在单片机系统中的应用

    邦有道,如矢:邦无道,如矢.  --孔子 电阻在电路中主要功能是限流和分压等等.在单片机系统中自然也是. 电阻作为限流应该是最常用的应用之一,对于单片机外围设计来说,电阻的应用非常重要,在很多时候,我 ...

  5. 电脑的基本硬件知识以及unix图解

    1.DELL R720 R610 2.电源: 人体心脏3.硬盘: 存数据的地方.机械的性能不高,3.5英寸 性能 SATA 借口<SAS <SSD 价格:SSD> SAS>SA ...

  6. python_基础硬件知识

    通过学习这一篇章的内容,回顾了<数字逻辑><计算机组成原理><操作系统> 这几门课的相关知识 有时候,总是要了解一些基本,才能更容易理解程序 以下是我的一些听课记录 ...

  7. STM32 -- 硬件知识

    一.网站资源 1.http://www.stmcu.com.cn/   二.硬件 1.BOOT0 和 BOOT1  1)一般BOOT0和BOOT1跳线都跳到0(地): 只是在ISP下载的情况下,BOO ...

  8. 迅为4412开发板Linux驱动教程/硬件知识及原理图的使用

    视频教程下载地址:http://pan.baidu.com/s/1pJwxUfL 嵌入式研发流程介绍 • PCB研发流程介绍 – 方案,原理图(网表) – layoutproject师(gerber文 ...

  9. ARM-Linux S5PV210 UART驱动(1)----用户手册中的硬件知识

    一.概述 The Universal Asynchronous Receiver and Transmitter (UART) in S5PV210 provide four independent ...

随机推荐

  1. Transaction And Lock--唯一索引下INSERT导致的死锁

    背景: 曾经的一位同事问我:"数据库只有并发INSERT 操作,会造成死锁么?",我没有太多思考地回答"不会",但真的不会吗? 测试: --========== ...

  2. kylin的配置账号密码的加密方法

    kylin的配置账号密码的加密方法 kylin安装过程中,配置账户,其中密码是加密的.生成密码对应密文的 方法如下: import java.io.PrintStream; import org.sp ...

  3. 基于jTopo的拓扑图设计工具库ujtopo

    绘制拓扑图有很多开源的工具,知乎上也有人回答了这个问题: https://www.zhihu.com/question/41026400/answer/118726253 ujtopo是基于jTopo ...

  4. 4.C#WebAPI多版本管理介绍及实现方案详解

    1.什么是 API 的多版本? 说白了就是多版本共存的问题.为方便大家理解我就举个例子吧,大家想必都用过Jquery吧,它的1.*版本做到了对低版本IE的支持:2.*版本还保留着ajax,但是不再支持 ...

  5. CentOS ASP.NET Core Runtime Jexus跨平台布署

    .net core 开源和跨平台,能布署到当前主流的Windows,Linux,macOS 系统上.本篇我们将在 Linux 系统上使用 ASP.NET Core Runtime 和 Jexus 布署 ...

  6. Storm的Metric接口简介

    本文由作者林洋港授权网易云社区发布. 作为服务端程序,我们总是需要向外界报告一些统计数据,以助于了解系统的运行情况,比如某个接口的调用时间.系统处理的请求数等等.当我们的程序以Storm Topolo ...

  7. Java基础学习篇---------多态

    一.多态性的理解 1.向上转型:子类为父类对象实例化,调用的一定是子类覆写的方法,他们之间找的是共性 2.向下转型:子类扩充了父类的某些功能,而父类中没有该功能,他们之间找的是特性 案例: Numbe ...

  8. 极大提高Web开发效率的8个工具和建议(含教程)

    面对复杂的 Web 应用的开发,良好的流程和工具支持是必不可少的,它们可以让日常的开发工作更加顺畅.更加高效.本文介绍了6个Web开发利器以及相关的教程,帮助你在开发.调试.集成和发布过程极大地提高效 ...

  9. Python 读取大文件的方式

    对于读取容量小的文件,可以使用下面的方法: with open("path", "r") as f: f.read() 但是如果文件容量很大,高达几个G或者十几 ...

  10. 栈的实现——java

    和C++一样,JDK包中也提供了"栈"的实现,它就是集合框架中的Stack类.关于Stack类的原理,在"Java 集合系列07之 Stack详细介绍(源码解析)和使用示 ...