You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot MVC+Thymeleaf应用部署VPS后运行一段时间崩溃求助

Spring Boot应用在Hostinger VPS运行一段时间后崩溃的常见原因及排查方向

一、资源类问题

  • 内存不足:VPS配置过低,Spring Boot应用运行时占用内存超过服务器可用内存,系统会自动杀死Java进程。可通过free -m查看服务器内存使用情况,启动应用时可添加JVM参数限制内存,比如java -Xmx512m -Xms256m -jar your-app.jar。
  • CPU占用过高:应用存在死循环、频繁IO操作或大量并发请求,导致CPU耗尽,进程无响应被系统回收。用top或htop命令查看进程CPU占用情况,排查代码中的性能瓶颈。
  • 磁盘空间耗尽:应用日志持续写入未做切割,或生成的临时文件过多占满磁盘,导致应用无法写入数据而崩溃。执行df -h查看磁盘使用率,配置日志切割(比如用Logback的滚动策略)。

二、进程管理问题

  • 未配置后台运行:直接在终端启动应用,关闭终端后进程被终止。正确做法是用nohup java -jar your-app.jar &启动,或配置systemd服务管理进程,确保应用后台稳定运行。
  • 进程被系统OOM Killer杀死:系统内存不足时,Linux的OOM Killer会优先杀死占用内存高的进程,Spring Boot进程很可能成为目标。可查看系统日志/var/log/messages或dmesg,搜索OOM关键字确认。

三、应用代码问题

  • 资源泄漏:数据库连接、文件流、线程池等资源未正确关闭,长时间运行后导致资源耗尽。检查代码中的数据库操作是否用了try-with-resources,线程池是否合理配置。
  • 未处理的异常:应用中存在未捕获的全局异常,导致线程崩溃进而引发整个应用崩溃。配置全局异常处理器,确保所有异常都能被捕获并处理。
  • 定时/异步任务问题:定时任务逻辑存在无限循环、重复执行等问题导致资源占用过高,或异步任务堆积引发线程池耗尽。

四、Hostinger VPS相关限制

  • VPS资源限制:部分低成本VPS有CPU/内存的突发限制,长时间高负载会触发限制,导致进程被暂停或杀死。查看Hostinger后台的资源监控数据,确认是否触发平台限制。
  • 防火墙/网络问题:VPS防火墙规则变更,或网络中断导致应用无法访问外部资源(比如数据库),进而引发崩溃。检查防火墙配置和应用中的网络请求异常日志。

排查步骤建议

  1. 查看应用日志:Spring Boot默认日志在启动目录下的logs文件夹或配置的日志路径,找出崩溃前的错误信息。
  2. 查看系统日志:检查/var/log/syslog或dmesg,确认是否有系统级别的进程终止记录。
  3. 监控资源使用:用top、free、df等命令持续观察服务器资源状态,定位是否是资源耗尽问题。
  4. 优化启动配置:添加JVM内存参数,配置后台运行服务,确保应用稳定启动。

内容的提问来源于stack exchange,提问作者Elkhan Ismayilov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 02:42:37