sdxc chrome卡顿/白屏 日志

This article is categorized as "Garbage" . It should NEVER be appeared in your search engine's results.


2025-02-05总结:现在正在开心使用kingston industrial,这篇笔记记录了2024年10月~12月使用samsung pro plus期间遇到的卡顿白屏问题,以及各种尝试过的解决方法和网上收集来的教程。


(先把 卡顿 和 白屏 写在开头定义)

2024-11-09

首先是发现chrome点开一个“放置较久”的tab以后,网页一开始是空白的,过了1~2秒以后网页内容才才开始显示出来。这有别于memory saver或者以前使用过的什么冻结标签页插件,因为网页的内容还在那里,不需要重新从服务器请求资源。这个问题主要是会影响我用command+w快速关闭一堆网页的快捷键效率,每次关闭tab到了后面都会被这个1~2秒的网页空白卡住,无法快速关闭。

然后就是chrome卡顿/无响应,每次2~3秒,鼠标光标变成转圈的样式,画面也会冻结

10月底开始出现的,一开始是一天一两次,现在已经一小时出现好几次了

终于察觉到了不对

删掉了8GB的Service Worker, IndexedDB, WebStorage(用finder直接删的,删之前把chrome退出来了)

重新启动chrome,没有提示任何报错,能继续正常用

(再观察几天看看)

要区别以下不同状态:

  1. 由于网络卡顿,一个网页要花较长时间下载完毕。体现为:网页icon转圈gif,部分文字/首页图 会先加载出来
  2. 本笔记提到的卡顿:网页失去响应,无法操作,鼠标转圈gif
  3. 从memory saver恢复:网页重新加载,几乎等同于直接刷新这个网页
  4. 本笔记提到的空白:整个网页空白,然后过了1~2秒整个网页直接显现(在1~2秒空白期间无法使用command+W关闭网页)

第一天:白屏依然存在,卡顿只出现过一次

第2天以后:卡顿没出现过了,白屏____

第3天以后:卡顿出现了2次,白屏还是存在(只要一个标签页放在那里不动的时间够长(一夜),它就会白屏,所以现在开始怀疑这是chrome近期更新引入的问题)。

第4天以后:综合前几天的表现总结下来:几乎没有卡顿了,卡顿问题解决。白屏问题还存在,而且稳定复现。

现在怀疑是memory saver搞鬼,所以开了个新测试场地:打开3个页面并最小化在dock(这样就可以过一天再打开它们了)。3个页面里,有2个页面是很久以前在memory saver里面设置为"Always keep these sites active"的页面。如果最后2个特殊照顾的页面没有白屏而另一个白屏了,就说明这个白屏和memory saver有关。如果都白屏了那就和memory saver无关。

测试结果是:无论是什么网页都白屏

2024-11-20:发现之前清理cache的时候只清理了profile下面的cache,没有清理cache-dir

把所有cache文件都删了,再试一次(打开多个网页最小化观察是否白屏)

2024-12-01:这几天问题愈发明显(不知不觉又出现了),除了之前的卡顿问题,还多了一种问题:网页加载速度奇慢无比。无论是walmart.com, bilibili.com那种架构复杂加载较慢的大网站还是google.com那种快速响应的搜索引擎,都很慢。对于google.com:有的时候不仅响应慢,搜索页面渲染出来以后tab的favicon还要等好几秒才能显示。我开始怀疑之前一直纠结本站的openssl 3.4.0 vs 3.3.2问题是不是就是chrome加载速度导致的(而不是openssl版本导致的)。

尝试1:使用jupyter notebook打开本地文件 -> 发现依然会卡几秒钟,排除了网络环境/ISP的问题

尝试2:用chrome在sdxc盘开了一个新profile -> 发现依然很慢

尝试3:用firefox在sdxc盘开了一个新profile -> 发现依然很慢

综上,怀疑既不是网络问题也不是chrome问题也不是profile文件太多的问题,可能和sdxc apfs encrypted这个盘有关,想格式化重装,结果发现把chrome profile拷贝出来要花一个小时以上,太糟糕了。

最终解决方法:把sdxc这个盘(apfs encrypted)的spotlight禁了(反正不需要从chrome profile/cache里面搜东西),然后删掉了spotlight-v100文件夹。再次打开chrome发现好多了。

对比7月份刚使用sdxc的表现:chrome的cache/profile文件夹体积并未增加(被我删过一次缓存),apfs encrypted分区的硬盘读写测试结果一样,但spotlight硬生生拖慢了chrome的速度,我怀疑是sequoia引入的问题。

再次更新:测试了一下,连tab白屏都不会再出现了。看来整篇笔记出现的所有问题都和这个spotlight有关。

很高兴,跑去更新那篇SDXC的public文章了。结果过了一周发现又开始卡了。很生气,决定开始尝试点偏门方法(veracrypt)。

创建了一个30GB的加密卷,跑了一下benchmark,然后准备迁移过去...然后突然发现半个小时前还卡得不行的chrome现在又非常流畅了。

难道是创建加密卷/benchmark时的大规模磁盘读写触发了什么机制(比如什么trim/存储碎片清理机制?不太懂)?暂时不清楚。所以决定继续使用当前的apfs encrypted chrome. 下次遇到问题的时候直接先往SD卡里面dd一个30GB的文件再看看有无改善。

后来想到了上古关键词defrag,结果还真能找到命令:🔗 [Michael Tsai - Blog - Enabling Defragmentation on APFS Hard Drives] https://mjtsai.com/blog/2019/10/28/enabling-defragmentation-on-apfs-hard-drives/以及🔗 [Defragging an APFS hard disk. - Apple Community] https://discussions.apple.com/thread/250406107?sortBy=rank

https://discussions.apple.com/thread/250406107?sortBy=rank

先跑了一遍status,结果发现:

macbook自带硬盘:APFS Container defragmentation is currently disabled

SD卡:APFS Container defragmentation is currently disabled

呃...收手了,还是没开启,因为突然想到SD卡也是属于“绝对不能开启碎片整理”的存储介质。

2024-12-09:又卡了一两次(现在对卡顿特别敏感),所以直接格式化了APFS encrypted的磁盘(把chrome文件夹复制出来,抹掉磁盘,然后拷回去)。等待后续观察。如果长时间都没有出现卡顿/网页加载缓慢的问题,可能就能说明APFS格式有的时候也是需要定期格式化以恢复性能的。

还是有概率出现卡顿

2024-12-12:更新到sequoia 15.2. 虽然没有在15.2 release notes里面找到任何与APFS有关的记录(也不期待苹果能在sequoia修这个问题),但还是把本次更新当作一次(可能的)分水岭看看未来一段时间的chrome性能。

更新完15.2开机使用的头2个小时特别特别特别卡,chrome卡到连一个简单网页都加载不全的那种卡。2个小时以后突然又变得非常流畅,没有出现过卡顿。

流畅了不到一天,chrome突然变得巨卡无比,什么网页都卡,chrome://restart指令都要卡10秒钟才关掉chrome开始重启(然后又花了10秒钟才弹出界面),finder打开sdxc文件夹也卡(随便用finder打开一个文件多的文件夹比如cache,就要一直loading很长时间才显示文件列表).

尝试了🔗 [unix - How can I stop fseventsd for certain volumes? - Ask Different] https://apple.stackexchange.com/questions/27034/how-can-i-stop-fseventsd-for-certain-volumes

尝试了🔗 [macos - How to prevent USB from .fseventsd, .Trashes, .Spotlight-V100 folders and .DS_Store files? - Super User] https://superuser.com/questions/790451/how-to-prevent-usb-from-fseventsd-trashes-spotlight-v100-folders-and-ds-st

尝试了杀掉mds进程

尝试了用dd往里面写文件

甚至尝试了python写一个directory walk(没用,虽然finder和chrome卡得要死,但python跑dir walk不知道为什么是秒出结果不带任何犹豫。跑完了以后该卡的还是卡)

都没有,已经卡到影响我基本操作了(以前最多也就感到不爽,但这次基本上卡到啥也干不了)

很生气,怀疑是sequoia的APFS驱动有bug,掏出disk utility,准备分出一块30GB的NTFS分区试试paragon-NTFS的表现。

分区卡在Modifying partition map这一步长达5分钟:

...
Shrinking APFS data structures
Shrinking partition
Modifying partition map
(卡住)

但最终还是成功给我分出了一块NTFS. 正当我准备开始试试NTFS性能时,我发现chrome又变流畅了,又回到了正常的流畅度。

很高兴,感觉像是找到了什么新的方法。合理怀疑是disk utility在分区的同时“整理了SD卡的存储块“。马上跑去disk utility把这块NTFS分区给移除了,因为:

  1. APFS分区速度回来了,能正常用chrome了,暂时用不着这块NTFS
  2. 现在先移除,下次要是再卡住就模仿今天的操作分出一块NTFS看看性能是否有改善
  3. 下次分区可以分更多(这次保守了,只分出30GB,如果分激进一点可能效果更好)

顺带一提,移除这块30GB的NTFS分区只花了10秒不到,是正常速度。

后来又试了几次上面的操作(创建分区然后移除),最后一次分区30GB NTFS只花了2分钟不到,比第一次快多了。

虽然暂时修好了,但还是想知道为什么,所以现在正在网络上查找对micro sd卡trim的资料(linux fstrim),发现steamDeck玩家可能对此比较有心得(而且steamOS玩家应该很吃micro SD卡小文件读写的性能)

搞了个UTM ubuntu虚拟机准备试一试

已知macOS上的虚拟机(应该是)无法读取macbook的那个sdxc卡槽

所以只能用usb读卡器了

能连上虚拟机(能找到/dev/sda的sd卡),但fstrim识别不了,此外hdparm显示的信息里也没有找到TRIM字样。结合网上查到的资料,应该是搞不通的,这玩意要mmcblk才行。参考下面这张图:

https://www.eet-china.com/mp/a345284.html

目前手里没有任何一个设备支持这玩意(有pci-e插槽,要买一个micro-sd转pci-e的板子,但懒得折腾了),所以这条路暂时是走不通的。以后有树莓派了可以考虑。

此外还可以参考🔗 [有办法在 Windows 下给 tf 卡 trim 吗? - V2EX] https://v2ex.com/t/905716

以及这个sd卡格式化工具:🔗 [SD Memory Card Formatter for Windows/Mac | SD Association] https://www.sdcard.org/downloads/formatter/

(目前是无法格式化的,因为sd卡里面保存了一堆obs录屏,以及windows arm虚拟机文件,一时半会搬不出来)

趁机思考几点:

  1. 可能最终还是要格式化
  2. 用sdcard.org的工具格式化
  3. 不知道目前这个卡的主控是怎么控制磨损平衡的(虽然没有trim,但可能主控还是提供了磨损平衡?不清楚),如果没有磨损平衡,那以后还真的得考虑那种批量64GB的便宜卡(半年一换)

然后我发现了一个之前从来没有听过的卡:kingston industrial 🔗 [Industrial Grade microSD Card - Kingston Technology] https://www.kingston.com/en/memory-cards/industrial-grade-microsd-uhs-i-u3,价格比其他卡都贵得多得多,每个GB严格1美元,最高只有64GB对应$64. 在产品介绍页面上明确写了磨损平衡、坏块管理等特性(翻了一下,kingston的canvas go以及其他microSD卡的介绍页面就没写这些东西)。要不要考虑一下?买个16GB应该就够用了。如果空间真的不够大概率也是cache太多导致的,删掉cache就行,profile占不了这么多空间。

sandisk好像也有industrial级别的卡:🔗 [Amazon.com: SanDisk 16GB Industrial MLC MicroSD SDHC UHS-I Class 10 SDSDQAF3-016G Bulk (1 Pack) : Electronics] https://www.amazon.com/SanDisk-Industrial-MicroSD-UHS-I-SDSDQAF3-016G/dp/B07CV344WJ/ 也能找到wear leveling等关键词,但官网没有像kingston那样显眼说出来,而是在一份pdf文档里面找到了。

后来又找到了一篇有关“工业级tf卡“的介绍文章:🔗 [读取TF卡S.M.A.R.T.信息第二季 12款工业级TF卡评测 - U盘存储技术 数码之家] https://www.mydigit.cn/thread-349896-1-1.html,里面提到了工业级tf卡wear leveling的实现细节:

2024-11-17:距离上次“里程碑式操作”(添加并移除NTFS分区)仅仅过了2天,又开始出现了小幅度的卡顿。忍不了了,直接买了kingston industrial 32GB.

在收到kingston industrial之前的这段时间又出现了多次卡顿事件。特征:1. 隔几天出现一次 2. (发作时)卡顿不再是偶发现象,而是让你几乎用不了chrome正常上网的那种 3. 此时打开disk utility,重复上面的创建分区-删除分区操作,通常耗时10分钟 4. chrome马上流畅了,又能苟延残喘几天

结合这几天学到的wear leveling知识,初步判定为:samsung pro plus最多只有局部写入均衡而且是非常烂的那种,而apfs也无法让让每次写入文件的logical block address正好避开那些坏块。不巧,sd卡里面已经有了一些坏块,如果chrome刚好要用它们就会被卡住。上面的创建-删除分区中有一个核心步骤是modifying partition map,通过(不知道什么逻辑)有一定概率让新的logical block映射到优质的physical block上面去,得以续命。但由于缺乏真-全局wear leveling,sdxc里面只要存在坏块,就终有概率被logical block映射上,映射上了就会卡住chrome.


kingston到了

实际上下面的跑分不是很重要,但还是跑了:

读卡器 + kingston industrial + apfs
读卡器 + kingston industrial + apfs加密
baseqi卡套 + kingston industrial + apfs
baseqi卡套 + kingston industrial + apfs加密

尽管原本的samsung pro plus作了格式化(格式化为apfs),但跑分已经出现了严重问题,4k写入速度趋近为0(估计是因为跑分软件刚好在损坏的block上面读写数据),最后我直接放弃了(因为新的读卡器太烫了)。

读卡器 + samsung pro plus(跑不动了)

Leave a Comment Anonymous comment is allowed / 允许匿名评论