Codex Desktop on Windows generates excessive local SQLite I/O and causes system stalls
What version of Codex are you using?
Codex Desktop App on Windows, observed install path version: 26.616.4196.0.
What platform is your computer?
Windows desktop workstation.
Hardware: AMD Ryzen 9 9950X, 32 GB RAM.
What issue are you seeing?
Codex Desktop generates very heavy local I/O against multiple SQLite databases under the user Codex data directory. Before moving these SQLite files to a RAM disk, the machine would periodically stall or feel blocked during normal Codex use, despite being a high-end workstation.
The problematic files include SQLite databases and WAL/SHM companions such as logs/state/memories/goals databases. The write pattern appears continuous and high-frequency, especially around SQLite WAL activity.
After moving these Codex SQLite files to an AIM RAM disk and keeping a disk-backed sync copy, the system became noticeably smoother. This strongly suggests that Codex local persistence/logging behavior is causing the disk stalls.
Local observation data
A 60-second local monitor after moving the files to RAM disk showed:
Physical disk activity:
R: write 155.1 MB, peak 25.7 MB/s
D: write 8.8 MB, read 0.2 MB
C:/F: write 5.7 MB, read 0.3 MB
E:/K: near 0
Top process I/O deltas during the same 60 seconds:
codex.exe app-server: total I/O about 1896.8 MB, write about 282.3 MB
Codex.exe main process: total I/O about 789.4 MB, write about 70.1 MB
Codex renderer process: write about 403.8 MB
I understand process-level I/O includes pipes, IPC, network, and device I/O, so it is not equal to physical disk writes. But the disk-level measurement still shows that Codex would have produced substantial local write pressure without the RAM disk workaround.
Expected behavior
Codex Desktop should avoid continuous high-frequency writes to the user's physical disk during normal use. A high-end Windows workstation should not experience UI/system stalls due to Codex local persistence.
Suggested improvements
Please consider improving Codex Desktop local persistence behavior:
- Reduce local log verbosity by default.
- Batch/debounce SQLite writes.
- Separate volatile logs from durable state.
- Provide a setting to choose log/cache/database directory.
- Provide max log size and retention controls.
- Automatically rotate, checkpoint, vacuum, or compact large SQLite logs.
- Avoid unbounded WAL growth or very frequent WAL writes on the user/system disk.
- Allow volatile logs to be stored in a temp/cache location while keeping durable state safer.
- Expose diagnostics showing which Codex local files are responsible for heavy I/O.
Workaround used
I moved the high-frequency Codex SQLite files to a RAM disk and keep a synchronized disk-backed copy. This greatly reduced physical disk writes and made the machine smoother. However, this workaround is fragile and should not be necessary for normal desktop use.
This issue has 5 comments on GitHub. Read the full discussion on GitHub ↗