#
那什么#...
说是 codex一个大bug爆了 在流式传输和自动化任务的时候,以5M/s的速度,持续往磁盘写日志。 每年大概要写640TB。要不了一年,就可以耗尽部分消费级SSD标的写入寿命。
...
Linux/Mac下直接看:
$ ls -lh ~/.codex/logs_2.sqlite
$ sqlite3 ~/.codex/logs_2.sqlite "SELECT level, COUNT(*) FROM logs GROUP BY level ORDER BY COUNT(*) DESC"
要是TRACE占了一大半、文件还在不停长,那就是中招了。
...
目前止血的办法有三个,从糙到稳。
最暴力的,直接拿sqlite触发器把日志写入掐死。反正这文件里只有诊断日志,没有你的对话历史,删了、屏蔽了都不心疼:
$ sqlite3 ~/.codex/logs_2.sqlite "CREATE TRIGGER IF NOT EXISTS block_log_inserts BEFORE INSERT ON logs BEGIN SELECT RAISE(IGNORE); END;"
温和一点的,把这个文件软链到内存盘(tmpfs),让它在内存里折腾,不碰你的SSD,重启自动清空:
$ mv ~/.codex/logs_2.sqlite ~/.codex/logs_2.sqlite.bak
$ ln -s /tmp/logs_2.sqlite ~/.codex/logs_2.sqlit
实在不想动命令行、家里又有第二块机械硬盘的,把这文件挪过去就行。 机械盘耐写,磨就磨吧。
俺的 VPS 中的查询:
$ sqlite3 ~/.codex/logs_2.sqlite "SELECT level, COUNT(*) FROM logs GROUP BY level ORDER BY COUNT(*) DESC" TRACE|4330 INFO|628 DEBUG|412 WARN|3 ERROR|1
看起来主要都是 TRACE,
立即禁止了...