请问一下各位大佬,我往 tf 卡写文件的时候,发现偶尔会出现几次卡顿 4-5s 的情况。往一个文件里面连续写入 1000 次 100k 数据,记录 write 的运行时间,写 10 几个文件的测试 demo 。换成了 exfat ,有改善。但是客户要求用 fat32 ,这个有办法优化嘛。
1
zzzyk OP 整理过碎片,好像也没啥用,该出现还是出现。最大出现过 8s 的情况。
|
2
roykingH 2024-10-31 13:55:59 +08:00
发热了吧 写的时候摸一下卡 看看热不热
|
3
ReZer0 2024-10-31 14:01:43 +08:00
先定位下问题在于读卡设备还是在于卡。如果问题在卡,看是否能换卡解决。
|
4
zzzyk OP @royking930911 不烫
|
6
minami 2024-10-31 14:12:25 +08:00 via Android
同一个文件频繁读写吗?可以改用 mmap 看看能否优化
|
9
yulgang 2024-10-31 14:22:55 +08:00
换个品牌卡,调整格式化时块大小试一试?
|
12
ReZer0 2024-10-31 14:31:10 +08:00
@zzzyk 有没有写普通文件而非软件的测试文件试试。我在想会不会是本身这类卡的 4k 读取能力问题,而你软件测试文件刚好一次性都是 kb 级别,中间没有个缓存,导致卡的写入瓶颈引发的卡顿现象。当然,你也可以拿个 U 盘格式化成 fat32 ,看看写入对象变成 U 盘的时候会不会也引发这种现象。
|
13
kenneth104 2024-10-31 14:34:14 +08:00
添加个 Cache ,容许丢数据就行
|
15
zzzyk OP @kenneth104 感谢建议,这是卡顿的应付措施,这个肯定会加的,我想找找看没有解决这个卡顿或者减小卡顿时间的办法。
|
16
kenneth104 2024-10-31 14:48:02 +08:00
其他办法,换 MLC 卡?没几个了,而且贵了些,但应该还好,需求容量不大
|
17
starqoq 2024-10-31 14:54:18 +08:00 via iPhone
感觉时写卡 cache 满了 然后卡顿了
试试写完以后马上调用一下 flush 或者用 usb3.0 的读卡器喝高速卡 |
18
ReZer0 2024-10-31 14:56:24 +08:00
@zzzyk 换个 4K 读写能力强点的。我怀疑是写缓给的不够导致卡本身出现写入瓶颈,用更强写入的 U 盘测试下看看问题是不是缓解。
|
19
zzzyk OP @starqoq 试过了,每次 write 都有 flush ,也试过没有 flush ,没有 flush 的写入时间正常波动,刷 cache 的时候的时间是 10ms ,没有刷的时候是 1ms ,不至于出现这个 4-5 秒的卡顿。
|
21
zzzyk OP @minami 大小不固定,1000 次 100k 数据,100k 数据也不固定,都不固定,只是单纯模拟实际应用场景(录像写文件)罢了
|
23
opengps 2024-10-31 15:40:08 +08:00
试试看用摄像头录像专用的 tf 卡,对写入能力支持更好些
|
24
kokutou 2024-10-31 15:48:21 +08:00
买那种写了什么摄像头存储卡 你看看京东页面参数 下面写了写入速度 有 50m/s 的那种
|
25
kokutou 2024-10-31 15:49:57 +08:00
|
26
starqoq 2024-10-31 16:00:48 +08:00
你可以试试高端一点的卡,可能是 tf 卡的主控回收 block 产生的卡顿。
|
28
wanguorui123 2024-10-31 17:25:59 +08:00
是不是 QLC 颗粒导致的啊
|
29
yinmin 2024-10-31 18:34:41 +08:00 via iPhone
试试 sandisk a1 卡,如果是 linux 系统别买 a2 卡
|
30
cooltechbs 2024-11-01 07:38:35 +08:00 via Android
关注此帖。我用过不少高速 TF 卡,用 CrystalDiskMark 测出来的 4K 读写 IOPS 都有一两千,可是尝试往上面装系统都是卡到不能自理。然而 Steam Deck 内置卡槽插上一样的卡却可以流畅安装运行 win11 。至今不知道什么原理,如果 LZ 解决了我一定回来涨涨见识
|