存储-1-各种存储接口设备
相关名词缩写:
HDD: Hard Disk Drive, 机械硬盘。
SSD: Solid State Drive, 固态硬盘。
SATA: Serial Advanced Technology Attachment, 串行高级技术附件, 接口标准。为机械硬盘设计,串行连接,最高 550 MB/s。
NVMe: NVM Express, 非易失存储器快速协议, 接口标准。为 SSD 设计,基于 PCIe,最高几千 MB/s。
JEDEC: Joint Electron Device Engineering Council, 固态电子器件工程联合委员会, 标准制定组织。
MMC: MultiMedia Card, 多媒体卡, 接口标准。和 eMMC 同为手机/平板设计,嵌入式多媒体卡,最高 200 MB/s。
eMMC: Embedded MultiMedia Card, 嵌入式多媒体卡, 存储设备。
UFS: Universal Flash Storage, 通用闪存存储, 接口标准。为移动设备/服务器设计,双通道全双工,最高 2900 MB/s。
F2FS: Flash-Friendly File System, 闪存友好文件系统, 文件系统。Linux 专属,针对闪存优化的日志结构文件系统。
TRIM: 无全称,是命令名, 清零/废块回收, 文件系统命令。是现代闪存设备必需的一个特性,否则性能会急剧下降。
NCQ: Native Command Queuing, 原生命令队列,设备功能。作用是允许存储设备内部并行处理多个I/O命令。
RAID: Redundant Array of Independent Disks, 独立磁盘冗余阵列, 存储架构。作用是用多个磁盘组建一个存储系统,提高可靠性和性能
IOPS: Input/Output Operations Per Second, 每秒输入输出操作数, 性能指标。比如 HDD 5000~7000, SATA SSD 50,000~100,000, NVMe SSD 500,000+, eMMC 1000~5000, UFS 3.0 50,000+。
接口演进:
SATA(2003年): 用于 HDD,后来也用 SSD --> NVMe(2011年): 专为 SSD 设计,更快 --> UFS(2011年): 专为手机存储设计,全双工.
文件系统演进:
ext4(2008年): 为 HDD 设计 --> F2FS(2013年): 专为闪存设计。
一、eMMC 和 SSD 和 UFS 的区别
eMMC、SSD 和 UFS 都是基于闪存的固态存储,但接口标准、性能和应用场景完全不同。详细对比如下:
1. 核心区别对比
------------------------------------------------------------------------------------------------------------------- 维度 eMMC SSD UFS ------------------------------------------------------------------------------------------------------------------- 接口标准 MMC/eMMC4.5/5.0 SATA或NVMe JEDEC UFS 2.0/2.1/3.0 物理接口 8~52针脚(嵌入式) 2.5寸盘位或M.2 直接焊在主板/NAND芯片上 应用场景 手机,平板,U盘,SD卡(廉价) 笔记本,PC,服务器 旗舰手机、高端平板、服务器 传输速度(理论) eMMC5.0最高200MB/s SATA最高550MB/s,NVMe最高3500+MB/s UFS2.1最高860MB/s,UFS3.0最高2900MB/s 并行性 单通道 单通道(SATA)或多通道(NVMe) 双通道读写独立 成本 最低 中等 较高 功耗 低 中等 低~中等 可靠性 一般 较好 较好 -------------------------------------------------------------------------------------------------------------------
2. 详细特性解析
2.1 eMMC(嵌入式多媒体卡)
(1) 特点:
a. 是 MMC 标准的嵌入式版本,直接焊在主板上;
b. 单通道,每次只能读或写(不能同时);
c. 寿命有限(擦写次数限制),尤其低端 eMMC;
d. 无 TRIM 支持或 TRIM 支持弱;
e. 内部控制器相对简单,没有高级队列管理;
(2) 性能指标:
a. 顺序读写:100~150 MB/s(eMMC 5.0);
b. 随机 IOPS:较低(1000~5000);
c. 延迟波动大,尤其在垃圾回收时卡顿明显;
d. 不支持 NCQ(Native Command Queuing),无法并行处理多个命令;
(3) 应用:预算手机、平板、廉价U盘、记忆卡。
2.2 SSD(固态硬盘)
(1) 特点:
a. 接口标准成熟,分为 SATA 和 NVMe 两种;
b. SATA SSD:用 SATA 接口(就像机械硬盘一样),单通道;
c. NVMe SSD:用 PCI Express 总线,4 条通道,支持多并行命令;
d. 企业级 SSD 有 RAID 模块、功耗管理、SMART 监控;
e. 支持完整 TRIM,智能垃圾回收;
(2) 性能指标:
a. SATA SSD:读写 550MB/s(接口限制);
b. NVMe SSD:读写 3500+ MB/s(PCIe 3.0),甚至 7000+ MB/s(PCIe 4.0);
c. 随机 IOPS:极高(10000~100000+,取决于型号);
d. 延迟低且稳定(通常 < 1ms);
e. 支持 NCQ,可并行处理多条命令;
(3) 应用:PC、笔记本、服务器、高性能存储.
2.3 UFS(通用闪存存储)
(1) 特点:
a. JEDEC 标准,专为移动和嵌入式设计;
b. 双通道架构:可同时独立进行读和写;
c. 直接集成在 SoC 或主板上(不是标准接口);
d. 支持 TRIM 和智能垃圾回收;
e. 内部命令队列深度高;
(2) 性能指标:
a. UFS 2.1:读 860 MB/s,写 260 MB/s(全双工,读写不互斥);
b. UFS 3.0:双向各 1450 MB/s(全双工,读写独立);
c. 随机 IOPS:高(20000~50000+);
d. 延迟低且一致(< 0.5ms);
e. 原生支持多命令队列,可并行处理;
(3) 应用: 旗舰手机(iPhone 12+、三星 S20+)、高端平板、企业服务器.
3. 性能对比实例
假设写入 1GB 大文件和读取 1000 个小文件:
------------------------------------------------------------------ 操作 eMMC 5.0 SATA SSD NVMe SSD UFS 3.0 ------------------------------------------------------------------ 顺序写 1GB ~8秒 ~2秒 ~0.3秒 ~1秒 随机读 1000 小文件 ~15秒 ~2秒 ~0.5秒 ~0.8秒 打开大应用 ~3秒 ~0.8秒 ~0.2秒 ~0.3秒 ------------------------------------------------------------------
4. BFQ参数配置要区分它们的原因
关键原因:
------------------------------------------------------------------------------------- 特性 eMMC SSD UFS ------------------------------------------------------------------------------------- 寻道代价 无机械部分,但GC卡顿 无机械 无机械 内部队列深度 浅(没有真正的 NCQ) SATA 无队列,NVMe 有 深(原生高队列) idle 是否有益 有弱益(防止 GC 冲突) SATA=弱益,NVMe=害 害(浪费并行性) 最优 timeout_sync 中等 SATA=中等,NVMe=高 极高 slice_idle 推荐 2~4ms 0~2ms 0 -------------------------------------------------------------------------------------
所以:
eMMC: 保守配置,slice_idle=2~4ms,防止垃圾回收打扰;
SSD: 激进配置(特别是 NVMe),slice_idle=0,充分利用并行性;
UFS: 最激进,slice_idle=0,充分利用双通道;
5. 快速识别设备类型
(1) 命令行判断
# Linux 上 cat /sys/block/*/queue/rotational # 0=固态(包括eMMC/SSD/UFS) cat /sys/block/*/queue/nr_requests # eMMC通常很小,NVMe通常很大 lsblk -d -o NAME,SUBSYSTEMS # 看是否有 nvme/mmc/ufs, 实测默认没有 lsblk dmesg | grep -iE "ssd|nvme|ufs|emmc" # 启动日志里能看到, 实测没啥 # Android 上 adb shell cat /proc/device-tree/compatible | grep -iE "ufs|emmc" adb shell dumpsys storaged # 存储设备信息,实测有打印
(2) 速率判断
传输速度 < 200 MB/s --> eMMC
传输速度 200~600 MB/s --> SATA SSD
传输速度 > 1000 MB/s --> NVMe SSD 或 UFS
如果还需要进一步区分 NVMe vs UFS,看是否支持全双工(同时读写) —— UFS 能做到,NVMe 不能(在同一队列里)。
6. UFS存储 + F2FS文件系统
最优组合:UFS 存储 + F2FS 文件系统。UFS 提供硬件层的高性能接口,F2FS 在文件系统层针对闪存进行优化,两者都考虑了闪存的特性(写限制、GC卡顿等).
能独立调优吗?
----------------------------------------------------------------------- 参数 UFS F2FS ----------------------------------------------------------------------- I/O 调度 无(由硬件控制) Linux 可调(通过 I/O 调度器如 BFQ) slice_idle 不适用 适用(F2FS 上 ext4 性能会不同) GC 策略 硬件内部,不可控 可在 sysfs 配置 写放大 依赖硬件 FTL 由 F2FS LFS 优化 -----------------------------------------------------------------------
例如,UFS 设备上,F2FS 文件系统,要在 F2FS 上调优 BFQ:
# 查看当前 I/O 调度器 cat /sys/block/mmcblk0/queue/scheduler # 切换到 BFQ echo bfq > /sys/block/mmcblk0/queue/scheduler # 调整 BFQ 参数(对 F2FS 上的所有文件操作生效) echo 0 > /sys/block/mmcblk0/queue/iosched/slice_idle echo 1 > /sys/block/mmcblk0/queue/iosched/low_latency
posted on 2026-06-24 11:18 Hello-World3 阅读(17) 评论(0) 收藏 举报
浙公网安备 33010602011771号