固态硬盘持续写入大文件时速度从上千MB/s暴跌至几十MB/s,表明SLC缓存已耗尽,此时测得的才是真实原生写入能力;需绕过缓存、使用不可压缩数据(如/dev/urandom)、写满缓存容量以上才能触发并捕获该状态。

当固态硬盘在持续写入大文件时突然从上千MB/s暴跌至几十MB/s,说明SLC缓存已耗尽,此时测出的才是真实原生写入能力——必须绕过缓存、使用不可压缩数据、写满缓存容量以上才能触发并捕获这一状态。
用dd命令测缓存耗尽后的持续写入速度
这一步操作起来很简单,直接把命令复制进终端执行就行。
以管理员权限打开终端,运行以下命令:
sudo dd if=/dev/urandom of=/mnt/ssd/test.bin bs=1M count=20480 oflag=direct
其中/mnt/ssd/需替换为你的SSD实际挂载路径;count=20480即20GB,确保远超主流TLC SSD的SLC缓存上限(通常16–150GB),迫使数据溢出缓存区直写TLC/QLC单元。
⚠️注意:不要用/dev/zero——多数SSD会对全零数据启用压缩或内部加速,测出的是虚高值,完全无法反映缓存耗尽后的真实性能。
用fio精准模拟工业级持续负载
fio是唯一能稳定复现缓存耗尽后性能拐点的工具,适用于视频采集、备份归档等真实场景。
方法一:基础缓存穿透测试
安装fio后执行:
fio --name=seqwrite --rw=write --bs=1M --size=30G --direct=1 --sync=0 --numjobs=1 --runtime=120 --time_based --group_reporting --filename=/mnt/ssd/fiotest
--size=30G确保测试文件体积超过SLC缓存容量;--runtime=120强制运行满2分钟,完整覆盖缓存填满→溢出→稳态回落全过程。
方法二:分段速率监控(推荐)
第一步:先用小文件预热,填满SLC缓存
fio --name=prewarm --rw=write --bs=1M --size=15G --direct=1 --filename=/mnt/ssd/prewarm.bin
第二步:立即启动长时测试,观察速率断崖点
fio --name=drain --rw=write --bs=1M --size=50G --direct=1 --group_reporting --filename=/mnt/ssd/drain.bin
输出中重点关注WRITE: bw=行——若前10秒显示bw=2100MiB/s,随后30秒内跌至bw=180MiB/s并维持稳定,即确认缓存已彻底耗尽,后续数值即为原生写入能力。
用CrystalDiskMark验证缓存边界与回落值
Windows平台下需借助图形化工具定位缓存容量临界点,而非仅看峰值。
第一步:下载CrystalDiskMark 8.17.3或更高版本,以管理员身份运行
第二步:设置测试参数
① 在“all”选项卡中,将“Test File Size”手动改为200GB
② 勾选“Sequential Q1T1 Write”,取消勾选其他所有测试项
③ 点击“All”开始测试
第三步:观察结果曲线图
若出现明显两段式下降——前段速度>600MB/s,后段稳定在<200MB/s且无回升,说明已越过SLC缓存容量阈值;此时后段平均值即为缓存耗尽后的实测写入速度,可直接对照厂商标称的“缓外写入速度”验证一致性。

















