2026年租用 Mac Mini 7×24 长跑决策矩阵
SQLite WAL 批量写入与 checkpoint、fsync 阈值与夜间备份窗口参数清单
2026年4月10日
RunMini 技术团队
阅读时间:约 9 分钟
💾🖥️ 租用 Mac Mini上七乘二十四跑队列或 Agent 状态时,SQLite WAL易遇checkpoint 抖动、fsync 尖峰与热备半套文件。下文含矩阵、闸口与夜窗清单。延伸:APFS 快照排除、电源长跑;首页、套餐、帮助。
痛点拆解
- PRAGMA 漂移:多进程连接各自为政,journal_mode/synchronous 不一致,偶发卡顿难复现。
- WAL 胀满:仅靠自动 checkpoint,高峰顶满缓冲,连带 SSH 与采集抖动。
- 热备误操作:漏 WAL 或时点不一,恢复失败误怪硬件。
WAL 模式参数
单一初始化路径固定:journal_mode=WAL、synchronous(业务库 NORMAL 起步)、wal_autocheckpoint(默认约千页,按写入微调)。批量段可临时调 cache_size/temp_store,结束还原。
并发读写边界
多读单写:写串行;长读事务拖 checkpoint。分析侧忌超大事务;写侧用显式事务批量 INSERT,少小提交减 fsync 风暴。
磁盘水位与 checkpoint 策略
APFS 空闲约百分之十五黄线、约百分之十红线停大宗写。流量期 wal_checkpoint(PASSIVE);维护窗停写后 TRUNCATE 再快照。见夜批磁盘专文。
决策矩阵(耐久 × 吞吐)
| 场景 | synchronous | checkpoint | 备注 |
|---|---|---|---|
| 业务主库 | NORMAL | 自动 + 低峰 PASSIVE | 平衡延迟与断电窗口 |
| 审计/计费 | FULL | 更频繁 TRUNCATE 窗 | fsync 更密,计划夜窗 |
| 临时缓存 | OFF | 可关 WAL 或定期删库 | 不可当唯一数据源 |
夜间备份窗口参数清单
- 备份前:静默写或排空队列;PASSIVE 看 checkpoint 返回。
- 优先 backup API;文件拷贝须同快照含
-wal/-shm或 TRUNCATE 后单文件。 - 窗长预留 两倍峰值 WAL 落盘,错开大文件导入。
- 保留上一成功备份;勿混用不同主版本文件。
落地步骤(≥5)
- 入口统一 PRAGMA 并日志确认 journal_mode,避免多进程各写一套。
- 写连接设
busy_timeout,抑重试风暴。 - 监控 WAL 字节数与磁盘空闲,接告警。
- 低峰 launchd/cron 跑 checkpoint 脚本。
- 备份与导入错开;必要时
caffeinate(见电源专文)。 - 季更恢复演练:冷启新目录只读校验。
备份与恢复 FAQ
- 只拷主库无 WAL?
- 多不完整。冷拷前 TRUNCATE 且无写,或整套同时点快照。
- NORMAL 会丢多少?
- 看末次提交窗口与断电;计费宜 FULL。
- 换机迁移?
- 停写 → checkpoint → backup API → 同版本验证;pragma 加密须一致。
可引用阈值
- wal_autocheckpoint:默认千页起;写洪峰降数百页,读多写少可略升。
- 磁盘:空闲约百分之十五/百分之十黄红线(同夜批文)。
- 批量:单事务千行起压测,盯 WAL 增长与 p95 延迟。