ubuntu

Ubuntu Java程序崩溃原因分析

小樊
42
2025-11-30 14:02:53
栏目: 编程语言

Ubuntu Java程序崩溃原因分析与排查

一 常见根因概览

二 快速定位步骤

三 典型症状与对应线索

症状 优先检查 常见线索 处理要点
进程瞬间消失 journalctl/var/log/syslogdmesg killed by SIGKILL”、abrt 记录 降低堆峰值、加内存、检查 OOM;必要时配置 coredumpabrt 策略
生成 hs_err_pid.log 该文件内容 EXCEPTION_ACCESS_VIOLATION”、Problematic frame 指向本地库 升级/回退 JDK 与本地库;移除或替换有问题的 JNI/本地依赖
应用日志无报错但停止 jstack、线程dump、应用日志级别 线程长时间 RUNNABLE/WAITING、无异常栈 增加日志级别、定位阻塞/死锁、补充异常保护
OutOfMemoryError Heap Dump、GC 日志 Full GC 频繁、老年代占满 调整 -Xmx/-Xms、优化对象生命周期、修复泄漏
磁盘写满导致异常 df -h、应用日志目录 日志/临时文件暴涨 清理与轮转日志、扩容磁盘、限流输出

四 修复与预防建议

五 最小可用的 systemd 服务示例

[Unit]
Description=Java Service
After=network.target

[Service]
Type=simple
User=appuser
ExecStart=/usr/bin/java -Xms512m -Xmx2g -jar /opt/app/app.jar
Restart=always
StandardOutput=journal
StandardError=journal
Environment=JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64

[Install]
WantedBy=multi-user.target

0
看了该问题的人还看了