必须设置codex内存上限以防卡顿崩溃,首选修改codex_config.yaml的resource_limits.memory_limit为小写单位(如"2048mb"),其次可用config.toml或环境变量覆盖,windows还可通过powershell硬限工作集。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

想让Codex在运行时不抢走系统太多内存,避免卡顿、崩溃或拖慢其他程序,必须明确设置其最大可用内存上限,而不是依赖默认值或系统自动分配。
修改 codex_config.yaml 配置文件
这是最稳定、重启后仍生效的全局控制方式。Codex 启动时会优先读取该文件中的 memory_limit 设置。
第一步:找到配置文件位置。Windows 默认在 【%APPDATA%\Codex\codex_config.yaml】;macOS 在 【~/Library/Application Support/Codex/codex_config.yaml】;Linux 在 【~/.config/codex/codex_config.yaml】。
第二步:用文本编辑器(如 VS Code 或记事本)打开该文件,在 resource_limits 区块下添加或修改 memory_limit 行:
resource_limits:
memory_limit: "2048mb"
注意:单位必须小写("mb"),不能写成 "MB" 或 "MiB",否则 Codex 无法解析,启动时将静默忽略该行并回退到默认值(通常是 1024mb)。
第三步:保存文件 → 关闭所有 Codex 进程(包括后台服务)→ 重新启动 Codex App。
通过 config.toml 覆盖内存参数(适用于 CLI 或 Agent 模式)
如果你主要用 Codex 的命令行工具或集成到 IDE 中,config.toml 的优先级高于 YAML 文件,且支持更细粒度的进程级控制。
方法一:直接编辑 config.toml
在文件末尾添加如下内容:
[resource_limits]
memory_limit = "1536mb"
方法二:使用环境变量临时覆盖(仅本次启动有效)
在终端中执行:CODEX_MEMORY_LIMIT=1024mb codex-cli run --task optimize
这一步操作起来很简单,直接把命令复制粘贴进终端回车就行。但要注意:环境变量方式不会写入配置,关闭终端即失效,适合调试用。
硬性限制:在 Windows 上用 Windows 内存管理器绑定
当 YAML 和 TOML 都不可控(例如企业锁死配置目录),可借助系统层强制约束 Codex 主进程的物理内存上限。
① 启动 Codex,打开任务管理器 → 详细信息 → 找到 codex.exe 进程,右键 → “转到服务” → 记下对应的服务名(通常是 codex-main 或 codex-agent)。
② 以管理员身份运行 PowerShell,执行:
Set-ProcessMitigation -Name "codex.exe" -Disable DEP,SEHOP -Enable BottomUpRandomization,ForceRelocateImages
③ 关键一步:启用工作集限制(需配合 Windows 10 21H2+ 或 Windows 11):
Set-ProcessMemoryLimit -Name "codex.exe" -MaximumWorkingSetSize 1677721600
这个数字是字节数,1677721600 = 1600MB。超出此值后,系统会主动回收 Codex 的物理内存页,强制其使用页面文件。⚠️ 不要设低于 800MB,否则 Codex 可能因频繁换页而彻底卡死或自动退出。











