最近发现电脑经常在“莫名其妙”地疯狂读写硬盘,打开监控一看,罪魁祸首竟然是 Codex Desktop。这货的日志文件 logs_2.sqlite 就像不知疲倦的永动机,持续高频写入。对于我们这种心疼 SSD 写入寿命、强迫症晚期的人来说,这简直是不可忍受的折磨。

虽然吐槽归吐槽,但工具还得用,直接禁用日志或者删文件肯定是不行的,不仅可能导致软件报错,还需要频繁折腾。有没有一种办法,既让它正常写日志,又能别折腾我们的硬盘呢?

思路:既然要写,那就写到“空气”里

Codex 写日志是为了调试和排查问题,这个需求本身没毛病。硬盘伤寿命是因为物理介质的磨损次数有限,那如果我们把这些日志写到“断电就消失”的地方呢?

这就是**内存盘(RAMDisk)**的用武之地。

Windows 上 ImDisk 虚拟磁盘管理界面截图

ImDisk 虚拟磁盘工具界面,用于在 Windows 上创建和管理内存盘。

内存的特性就是读写速度极快且没有磨损限制,用来存放这种频繁产生、且重启后基本没用的临时日志文件简直完美。今天要分享的这个方案,核心思路就是:

  1. 在内存里划出一小块区域(比如 128MB),虚拟成一个硬盘分区(设为 R: 盘)。
  2. 把 Codex 的日志文件“搬运”到这个 R: 盘里。
  3. 在原来的位置创建一个“软链接”,把系统的写入请求“骗”到内存盘里。

软链接原理示意图,显示文件重定向过程

软链接原理示意图:将原始位置的写入请求透明地重定向到内存盘,欺骗应用程序。

这样,Codex 以为自己还在老老实实写硬盘,实际上全是极速的内存操作。SSD 彻底解放,写入焦虑瞬间治愈。

具体怎么搞?

这套操作在 Windows 上实现起来其实挺简单的,利用的就是开源的 ImDisk 工具配合 PowerShell 脚本。为了方便大家(避免手敲命令行出错),已经有大佬把这些步骤封装成了自动化脚本。

脚本包含的功能很全:

  • 一键部署:自动创建 R: 盘(默认 128M,嫌小可以改大),自动处理文件迁移和软链接。
  • 开机自启:因为内存盘断电数据就没了,脚本内置了开机自动恢复逻辑,下次开机自动重建盘符和链接,无需干预。
  • 卸载功能:如果以后不想用了,也有卸载脚本彻底还原。

操作步骤简析:

这套工具主要针对 Windows 用户,特别是那些监控发现 logs_2.sqlite-wal 文件一直在疯狂刷新的朋友。

脚本会自动处理三个关键文件:

  • logs_2.sqlite
  • logs_2.sqlite-wal
  • logs_2.sqlite-shm

通过软链接技术,系统对这三个文件的任何读写操作,都会被透明地重定向到内存盘符 R: 下。对于 Codex 来说,路径没有变,一切如常;对于你的 SSD 来说,世界清静了。

方案优缺点分析

优点:

  • 保护硬盘:这是最核心的,彻底消除了高频小文件写入对 SSD 寿命的损耗。
  • 极速读写:内存的速度远超 SATA 甚至 NVMe SSD,理论上日志写入的性能会有微小的提升(虽然体感不一定明显)。
  • 自动化维护:无需每次重启手动挂载,任务计划程序会搞定一切。

需要注意的点:

  • 重启日志丢失:这是内存盘的特性。因为日志是重启前那一会儿的,丢失也无所谓,对于排查大多数实时问题也没影响。
  • 内存占用:默认 128MB,现在的电脑动不动 16G、32G 内存,这点占用完全不值一提。

总结

如果你也是 Codex 的重度用户,看着任务管理器里频繁的磁盘占用感到不舒服,这个优化脚本绝对值得一试。它属于那种“用完就回不去”的小众舒适向工具,既治好了我的强迫症,也实实在在地保护了我的那块昂贵的 SSD。

不妨试着部署一下,让你的硬盘歇一歇吧。

标签: none

评论已关闭