MacBook运行Ruby/Rails任务CPU占用100%的长期解决方案咨询
Spring导致Rails运行时CPU占用100%的永久解决方案
- 优先升级Spring相关依赖
绝大多数高占用问题都是旧版本Spring的兼容BUG导致,直接更新到最新稳定版即可修复:
更新后重启Spring验证问题是否解决。bundle update spring spring-watcher-listen - 缩小Spring的文件监听范围
Spring默认会扫描项目根目录下所有文件,当项目存在大量非业务文件(比如node_modules依赖、日志缓存文件)时,持续扫描会导致CPU满载。可以在项目config/spring.rb中添加排除规则:
配置完成后执行Spring.watch_exclude += [ "node_modules", "tmp", "log", "public", "storage" ]spring restart生效。 - 按需禁用Spring预加载器
如果你对Rails启动速度的敏感度不高,或者是M系列芯片Mac存在架构兼容问题,可以直接禁用Spring彻底规避相关问题:
单次临时禁用:运行Rails命令时添加前缀DISABLE_SPRING=1,比如DISABLE_SPRING=1 rails server
全局永久禁用:在当前用户的Shell配置文件(.zshrc/.bash_profile/.bashrc)中加入环境变量配置export DISABLE_SPRING=1,重启终端后生效。 - 排查自定义预加载逻辑
如果以上方案都无效,逐一排查项目中自定义的Spring扩展、预加载初始化代码,确认是否存在死循环、重复加载的逻辑。
内容的提问来源于stack exchange,提问作者bubbaspaarx
相关产品推荐
相关产品推荐

