RedHat 6.5下WebLogic进程频繁异常被杀问题咨询
解决WebLogic受管服务器频繁被Killed的问题
碰到这种WebLogic进程每隔几小时就被莫名Killed的情况,我之前也处理过类似案例,结合你给出的报错信息(./startWebLogic.sh: line 175: 53875 Killed ${JAVA_HOME}/bin/java...)和剩余内存正常的前提,大概率是系统层面的机制或限制导致的,给你几个具体的排查和解决方向:
1. 优先确认是否是系统OOM Killer触发的
虽然你说服务器剩余内存无异常,但Linux的OOM Killer并不只看整体剩余内存——它会根据进程的内存占用比例、系统的swap使用情况、页缓存压力等指标,选择“对系统影响最小”的进程杀死。
- 查看系统日志验证:执行
dmesg | grep -i kill或者查看系统日志文件(比如CentOS的/var/log/messages、Ubuntu的/var/log/syslog),如果能找到类似Out of memory: Killed process 53875 (java)的记录,就实锤是OOM Killer干的。 - 临时解决:给WebLogic进程设置更低的OOM优先级,避免被优先杀死。可以在
startWebLogic.sh里添加一行(在启动java命令之后):echo -1000 > /proc/$(pgrep -f "${SERVER_NAME}")/oom_score_adj - 永久解决:如果用systemd管理WebLogic服务,可以在service文件里添加
OOMScoreAdjust=-1000;如果是直接用脚本启动,把上面的命令加入启动脚本即可。
2. 检查进程的资源限制(ulimits)
系统可能对单个进程的虚拟内存、文件句柄、进程数等设置了上限,当WebLogic进程触及这些限制时,内核会直接杀死进程。
- 查看当前WebLogic进程的限制:执行
cat /proc/[PID]/limits(把[PID]换成实际的java进程ID),重点关注Max address space(虚拟内存)、Max open files(文件句柄)这两项。 - 调整限制:修改
/etc/security/limits.conf文件,添加以下配置(假设WebLogic运行用户是weblogic):
保存后让weblogic soft memlock unlimited weblogic hard memlock unlimited weblogic soft nofile 65536 weblogic hard nofile 65536 weblogic soft nproc 65536 weblogic hard nproc 65536weblogic用户重新登录,或者重启服务器生效。
3. 排查cgroup资源限制(容器/虚拟化环境)
如果你的WebLogic部署在Docker、Kubernetes或者使用cgroup做资源隔离的环境中,可能是cgroup设置的内存上限触发了进程杀死机制。
- 查看cgroup内存限制:找到WebLogic进程对应的cgroup路径,执行
cat /sys/fs/cgroup/memory/memory.limit_in_bytes(路径可能因环境不同而变化),对比进程的实际内存使用(ps aux | grep java看RSS列)。 - 解决:要么调整cgroup的内存上限,给WebLogic足够的空间;要么优化JVM参数,比如适当调小
-Xmx值,避免进程内存接近cgroup限制。
4. 检查JVM参数与WebLogic配置
虽然剩余内存正常,但JVM的内存配置或WebLogic的应用可能存在隐性问题:
- 查看GC日志:如果启动脚本里配置了GC日志(比如
-Xloggc:/path/to/gc.log),分析日志看是否有频繁Full GC、内存泄漏的迹象。 - 检查
MEM_ARGS参数:确认-Xmx、-Xms等堆内存设置是否合理,比如32位系统下堆内存不能超过4G,64位系统也要避免过度分配导致虚拟内存超限。 - 排查内存泄漏:如果怀疑有内存泄漏,可以用
jmap、jstack工具分析进程内存快照,定位占用内存过高的对象或线程。
5. 排查定时任务或监控工具的误杀
有时候自动化运维脚本、监控agent会误杀进程,比如某些定时清理脚本、异常监控工具的误触发:
- 查看定时任务:执行
crontab -l查看WebLogic用户和root用户的定时任务,同时检查/etc/cron.d/、/etc/cron.hourly/等系统定时任务目录。 - 检查监控工具:确认是否有监控工具(比如Zabbix、Nagios)配置了“进程异常则杀死重启”的规则,且规则逻辑有误。
内容的提问来源于stack exchange,提问作者Ahmed
相关产品推荐
相关产品推荐

