【发布时间】:2017-04-02 08:48:27
【问题描述】:
在 Wildfly-8.0 中对应用程序执行负载测试时,内存和 cpu 都增加了。停止测试后,内存和 cpu 都下降到 50%,但服务器无法接受任何请求,即使来自服务器托管的机器也面临同样的 Wildfly 控制台问题
我们通过Visual VM监控服务器中创建的对象时没有发现任何线索,wildfly-8.0版本也是这个问题,因为我们想知道为什么应用服务器即使在资源消耗低于50之后也不接受任何请求%。
【问题讨论】:
在 Wildfly-8.0 中对应用程序执行负载测试时,内存和 cpu 都增加了。停止测试后,内存和 cpu 都下降到 50%,但服务器无法接受任何请求,即使来自服务器托管的机器也面临同样的 Wildfly 控制台问题
我们通过Visual VM监控服务器中创建的对象时没有发现任何线索,wildfly-8.0版本也是这个问题,因为我们想知道为什么应用服务器即使在资源消耗低于50之后也不接受任何请求%。
【问题讨论】:
首先,检查日志文件。寻找任何无法解释的异常。 (尤其是 OOME 会导致锁定。)
接下来,使用 jstack 或类似工具来获取线程堆栈的转储。检查侦听器线程是否仍处于活动状态,以及是否有空闲的工作线程准备好处理请求。
在重负载下有多种情况会导致锁定。常见的综合征包括:
OOME 导致线程死亡、数据结构保持锁定状态或其他线程等待 notify 事件或类似的永远不会到达的事件。
负载触发的同步或类似问题。
【讨论】: