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

Wildfly 10部署正常但浏览器访问web应用白屏无报错是什么原因

故障可能原因
  • Undertow工作线程耗尽:Wildfly 10默认使用Undertow作为Web服务器,其工作线程池用于处理所有业务HTTP请求,管理控制台使用独立的管理线程池不受影响。如果应用存在慢接口(无超时的远程调用、未加索引的大表查询)、长连接泄漏,或者短时间请求量超过线程池承载上限,会导致新请求进入排队队列超时,表现为浏览器长时间加载后白屏,重启服务后所有线程被释放即可恢复。该场景下无业务报错写入server.log是正常现象。
  • 数据源连接池泄漏:如果应用代码存在数据库连接未显式关闭的问题,会导致连接池所有可用连接被占满,新请求获取连接时会进入无限等待(默认未配置获取连接超时时间),不会抛出异常到日志文件,仅表现为请求无响应。
  • JVM内存区域耗尽:你看到的服务器整体内存使用率30%是操作系统级指标,不等于Wildfly进程的JVM内存使用率。如果配置的JVM堆内存上限(-Xmx)过小,或者应用存在堆内存、元空间(Metaspace)泄漏,当JVM内存占用接近阈值时会频繁触发Full GC,CPU资源被GC线程占用,业务线程无法得到调度,导致请求处理超时。如果未开启GC日志,server.log不会记录相关异常。
  • 本地缓存无限制膨胀:如果应用使用的本地内存缓存(Session、自定义HashMap、Guava Cache等)未配置过期策略和容量上限,运行时间过长后缓存数据量过大,会导致请求处理时的序列化、遍历操作耗时陡增,最终触发浏览器超时,重启后缓存被清空即可恢复。
和Wildfly内存配置的关联说明

二者存在相关性,建议按以下步骤验证:

  1. 检查standalone.conf中的JVM启动参数,确认-Xmx(堆内存上限)、-XX:MaxMetaspaceSize(元空间上限)的配置是否合理:通常-Xmx建议设置为服务器可用内存的50%~60%,元空间上限建议至少设置为512M,避免类加载过多导致元空间耗尽。
  2. 后续出现故障时不要直接重启,优先执行以下命令采集现场数据:
    • 导出线程栈:jstack <wildfly_pid> > jstack_dump.log,可以定位是否存在线程阻塞、死锁、线程池耗尽问题
    • 查看JVM内存占用:jmap -heap <wildfly_pid>,可以确认JVM各内存区域的使用率
    • 查看GC情况:jstat -gcutil <wildfly_pid> 1000 5,可以确认是否存在频繁Full GC
  3. 建议在JVM启动参数中添加GC日志配置:-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/path/to/your/gc.log,方便后续排查内存相关问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 01:06:04