FDP(Flexible Data Placement)— 灵活数据放置
FDPFlexible Data Placement— 灵活数据放置 什么是 FDPFDPFlexible Data Placement是 NVMe 2.0 引入的最新特性允许主机精确控制数据写入 NAND 的物理位置从而从根本上降低写放大WAF提升 SSD 寿命与性能。 简单说FDP 让主机告诉 SSD “这批数据放一起那批数据放另一边”——SSD 不再需要盲目猜测数据的生命周期。 FDP 解决什么问题回顾 WAF 产生的根源传统 SSD 的困境 主机混合写入热数据 冷数据 → 同一个 Block ↓ 热数据频繁更新 → 该 Block 变脏 ↓ GC 触发搬移冷数据其实根本没必要动它 ↓ WAF 升高 寿命白白消耗 延迟抖动 根本原因SSD 不知道哪些数据生命周期相似 FDP vs 传统方案对比方案主机控制粒度WAF 改善实现复杂度传统 NVMe❌ 无控制基准简单ZNSZone 级粗粒度显著高需重写应用FDPPlacement Handle 级细粒度极显著中等兼容现有接口Multi-streamStream 级已废弃有限中等FDP 是 ZNS 和传统 NVMe 之间的黄金中间路线——改善效果接近 ZNS但对应用改动远小于 ZNS。⚙️ FDP 核心概念1️⃣ Reclaim UnitRU回收单元FDP 将 NAND 空间划分为多个 RU 每个 RU ≈ 一个或多个 NAND Block RU 是 GC 的最小回收单位2️⃣ Placement HandlePH放置句柄主机写入时携带 PH 标签 相同 PH 的数据 → 写入同一批 RU 不同 PH 的数据 → 写入不同 RU物理隔离3️⃣ Reclaim GroupRG回收组多个 RU 组成一个 RG 每个 PH 对应一个 RG 主机通过分配不同 PH 实现数据隔离 FDP 数据隔离示意没有 FDP混合存放 Block A: [热数据1][冷数据1][热数据2][冷数据2] Block B: [热数据3][冷数据3][热数据4][冷数据4] GC时必须搬移冷数据 → WAF 高 ───────────────────────────────────────────── 有 FDP按生命周期隔离 PH0热数据区: [热数据1][热数据2][热数据3][热数据4] PH1冷数据区: [冷数据1][冷数据2][冷数据3][冷数据4] GC时热数据区整块回收冷数据纹丝不动 → WAF≈1 ️ FDP 在数据库中的应用以RocksDB为例最典型的受益者RocksDB LSM-Tree 数据分层 Level 0最热频繁 Compaction → PH 0 Level 1 → PH 1 Level 2 → PH 2 Level 3最冷极少变动 → PH 3 WAL顺序写日志 → PH 4 效果 ├── 不同 Level 数据物理隔离 ├── Compaction 只影响对应 Level 的 RU ├── WAF 从 ~3.0 降至 ~1.2 └── P99 延迟降低 40% FDP 实测效果业界数据指标传统 NVMeFDP 优化后改善幅度WAF2.5 ~ 4.01.1 ~ 1.5↓ 60%SSD 寿命基准↑ 2~3x大幅延长P99 写延迟基准↓ 30~50%显著改善吞吐量稳定性波动较大极稳定明显改善️ FDP 使用示例# 检查设备是否支持 FDPnvme fdp status /dev/nvme0n1# 查看可用的 Placement Handlenvme fdp usage /dev/nvme0n1# 使用 io_uring 携带 FDP 标签写入伪代码struct io_uring_sqe sqe{.opcodeIORING_OP_WRITE, .fdfd, .addrbuf, .lenlen, .offoffset, .ioprioIORING_RECFSUPD_IPI(placement_handle)// 指定 PH};# RocksDB 开启 FDP 支持OPTIONS: use_fdptruefdp_placement_handles[0,1,2,3,4] FDP vs ZNS如何选择选 ZNS 的场景 ├── 应用天然顺序写日志、对象存储 ├── 愿意重写存储层以获得极致 WAF └── 追求最低硬件成本DRAM 用量最少 选 FDP 的场景 ├── 现有应用改动成本高数据库、文件系统 ├── 需要随机写支持 ├── 想快速获得 WAF 改善而不重构系统 └── 生产环境平滑迁移 两者共存 FDP 和 ZNS 并不互斥 未来 SSD 可能同时支持两种模式 按工作负载特性灵活选择 一句话总结FDP 是 SSD 与软件握手的新方式——主机不再把数据随手一扔而是告诉 SSD 每笔数据的归属让 GC 变得精准高效。这是继 ZNS 之后存储软硬件协同优化的又一次重要突破。

相关新闻

免费开源RPA工具OpenRPA:企业级流程自动化完整指南

免费开源RPA工具OpenRPA:企业级流程自动化完整指南

免费开源RPA工具OpenRPA:企业级流程自动化完整指南 【免费下载链接】openrpa Free Open Source Enterprise Grade RPA 项目地址: https://gitcode.com/gh_mirrors/op/openrpa 你是否每天被重复的点击、复制粘贴和数据录入工作所困扰?是否渴望将宝…

2026/7/24 20:07:02 阅读更多 →
09-02-YooAsset生态-Unity小游戏平台适配

09-02-YooAsset生态-Unity小游戏平台适配

生态-小游戏平台适配 篇章:09-生态篇-集成与协同 状态:已完成 阅读时间:约 25 分钟 一、引言 1.1 本章在系列中的定位 小游戏(Mini Game)平台是 Unity 资源的最严峻考验:微信小游戏首包 4MB,抖…

2026/7/24 20:06:02 阅读更多 →
AlienFX Tools终极指南:告别臃肿AWCC,打造轻量级Alienware控制中心

AlienFX Tools终极指南:告别臃肿AWCC,打造轻量级Alienware控制中心

AlienFX Tools终极指南:告别臃肿AWCC,打造轻量级Alienware控制中心 【免费下载链接】alienfx-tools Alienware systems lights, fans, and power control tools and apps 项目地址: https://gitcode.com/gh_mirrors/al/alienfx-tools 还在为Alien…

2026/7/24 20:06:02 阅读更多 →

最新新闻

不同系统下设置静态IP

不同系统下设置静态IP

虽然所有 Linux 系统在底层的内核操作是相同的(临时配置都可以用 ip 或 ifconfig),但让静态 IP 永久生效的配置文件格式、路径以及后台网络管理服务,在不同操作系统中截然不同。各大常见系统设置静态 IP 的机制对比与操作示例说明…

2026/7/24 20:15:04 阅读更多 →
3分钟掌握Chrome滚动截图神器:一键保存完整网页的终极方案

3分钟掌握Chrome滚动截图神器:一键保存完整网页的终极方案

3分钟掌握Chrome滚动截图神器:一键保存完整网页的终极方案 【免费下载链接】full-page-screen-capture-chrome-extension One-click full page screen captures in Google Chrome 项目地址: https://gitcode.com/gh_mirrors/fu/full-page-screen-capture-chrome-e…

2026/7/24 20:15:04 阅读更多 →
�鸿蒙报错速查:arkts-limited-stdlib __proto__ 原型链访问,用了就炸,根因 + 真解法

�鸿蒙报错速查:arkts-limited-stdlib __proto__ 原型链访问,用了就炸,根因 + 真解法

报错原文 ERROR: 10505001 ArkTS Compiler Error Error Message: Property __proto__ does not exist on type Object. At File: xxx.ets:N:N常伴生报错: Error Message: Usage of standard library is restricted (arkts-limited-stdlib)报错触发场景 你写鸿蒙 Ark…

2026/7/24 20:15:04 阅读更多 →
Windows Defender终极移除指南:3种模式快速释放系统性能

Windows Defender终极移除指南:3种模式快速释放系统性能

Windows Defender终极移除指南:3种模式快速释放系统性能 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://gitcode.com/gh_mirrors/w…

2026/7/24 20:15:04 阅读更多 →
内存访问模式

内存访问模式

目录 前言 存储时的对齐 对齐与合并访问 全局内存读取 全局内存写入 结构体数组和数组结构体 总结 前言 本文将通过线程束的视角了解数据如何流动,以更加基础的视角去优化性能,如何通过优化全局内存的访问模式来榨干显存带宽 存储时的对齐 int *…

2026/7/24 20:15:04 阅读更多 →
【亲测有效】快来这里,无门槛优惠券激活码

【亲测有效】快来这里,无门槛优惠券激活码

近来发现一个可以省钱的方法, 经过研究后才发现了这个激活方法, 这是千 问官方推出的一个特定专属活动,专给新用户的福利。只要在APP对话框内输入指令:新用户福利099480 就能领到8元无门槛立减券了,口令经实测有效…

2026/7/24 20:14:03 阅读更多 →

日新闻

用Highcharts 创建可拖拽三维散点立方体3D图表

用Highcharts 创建可拖拽三维散点立方体3D图表

该案例基于Highcharts scatter3d 三维散点图实现空间立方体散点可视化,核心特色:三维 X/Y/Z 三轴空间,所有散点分布在 0~10 立方体空间内;散点使用径向渐变实现立体 3D 圆球质感;支持鼠标 / 触屏拖拽画布,…

2026/7/24 0:00:29 阅读更多 →
AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口 AppCertDlls 位于 HKLM\System\CurrentControlSet\Control\Session Manager\AppCertDlls。本文的程序功能是只读列出这个键在 64 位和 32 位注册表视图中的全部值,并显示每条值的来源、名称、类型和可安全显示的数…

2026/7/24 0:00:29 阅读更多 →
我的编程之路:第一篇博客

我的编程之路:第一篇博客

大家好,我是一名编程初学者,同时这也是我编程学习之路上的第一篇博客。在这里,我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手,目前在学习c语言,我对编程世界充满了强烈的好奇。当然&…

2026/7/24 0:00:29 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/24 3:59:20 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/24 1:23:39 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/24 18:52:18 阅读更多 →

月新闻