MacOS运行Odoo14的odoo-bin报错current limit exceeds maximum limit
问题根因
该报错本质是MacOS系统默认的单进程内存硬限制,低于Odoo 14默认预设的limit_memory_hard阈值,导致系统调用setrlimit时触发参数合法性校验失败。
排查与解决步骤
方法1:启动时临时传参(快速验证,无需修改配置)
直接在启动命令后追加内存限制参数即可生效,示例命令如下:
python3 odoo/odoo-bin --limit-memory-hard 268435456 --limit-memory-soft 134217728
以上参数分别对应256M硬限制、128M软限制,设备内存充足的前提下可自行放大数值,只需保证软限制数值始终小于硬限制即可。
方法2:创建自定义配置文件(永久生效)
源码部署的Odoo默认不会自动生成配置文件,需手动创建:
- 在你的项目根目录
/Users/kilgow/Desktop/odoo-dev/下新建名为odoo.conf的文件,写入如下配置:
[options] addons_path = /Users/kilgow/Desktop/odoo-dev/odoo/odoo/addons,/Users/kilgow/Library/Application Support/Odoo/addons/14.0,/Users/kilgow/Desktop/odoo-dev/odoo/addons admin_passwd = 自定义后台管理员密码 db_host = localhost db_port = 5432 db_user = 你的PostgreSQL账号 db_password = 你的PostgreSQL密码 limit_memory_hard = 536870912 limit_memory_soft = 268435456
- 后续启动时指定配置文件即可自动加载参数:
python3 odoo/odoo-bin -c odoo.conf
方法3:调整MacOS系统限制(仅需大内存场景使用)
如果需要配置更高的Odoo内存阈值,可先调整系统层面的进程限制:
- 临时生效(仅当前终端窗口有效):
sudo sysctl kern.maxprocperuid=1024 ulimit -s 65532
- 永久生效:将上述参数写入
/etc/sysctl.conf文件,重启设备后生效。
内容的提问来源于stack exchange,提问作者user16945328
相关产品推荐
相关产品推荐

