DigitalOcean Linux虚拟机上Next.js进程被杀死问题求助
Next.js服务运行1分钟后被Killed的排查与解决建议
我在DigitalOcean虚拟机上部署Next.js服务器,执行npm run start后约1分钟,日志中出现Killed提示。一开始怀疑内存不足,已经把内存从512MB升级到1GB,但问题依然存在,请问是否需要进一步升级内存?
运行日志
joey@mydroplet:~/Server$ sudo node server info - SWC minify release candidate enabled. https://nextjs.link/swcmin event - compiled client and server successfully in 3.3s (196 modules) wait - compiling... event - compiled client and server successfully in 410 ms (196 modules) > Ready on https://localhost:443 > Ready on http://localhost:8080 wait - compiling / (client and server)... event - compiled client and server successfully in 1173 ms (261 modules) Killed joey@mydroplet:~/Server$
当前DigitalOcean套餐截图

排查与解决建议
- 先确认是否真的是内存问题:
- 用
top或htop命令实时监控内存占用,观察服务被Killed前的内存使用峰值 - 查看系统日志
dmesg | grep -i kill,如果出现Out of memory: Killed process相关内容,才能确定是OOM Killer触发的终止
- 用
- 优先尝试内存优化,而非直接升级:
- 确保使用生产模式启动:先执行
npm run build完成编译,再运行npm run start(开发模式内存占用远高于生产模式) - 调整Node.js内存参数:启动时添加
--max-old-space-size限制,比如sudo node --max-old-space-size=800 server(数值不超过服务器可用内存) - 优化Next.js配置:在
next.config.js中关闭非必要特性,比如禁用devIndicators、调整outputFileTracing减少资源加载
- 确保使用生产模式启动:先执行
- 若优化后仍内存不足,再考虑升级到2GB内存,或者添加Swap分区(成本低但性能弱于物理内存,可临时缓解压力)
内容的提问来源于stack exchange,提问作者joeymalvinni
相关产品推荐
相关产品推荐

