Hello! 欢迎来到小浪资源网!


Java服务假死且所有URL请求无响应,如何快速诊断并解决?


Java服务假死且所有URL请求无响应,如何快速诊断并解决?

Java服务假死,如何诊断无响应问题?

问题描述

某服务下所有 URL 请求(包括无效 URL)均无法响应,表现为浏览器持续加载状态。初步排除系统内存、GC 情况等问题。线程信息过长,无法在此展示。日志中未发现异常。

诊断与解决方案

立即学习Java免费学习笔记(深入)”;

从问题描述中,可以推测服务已经接收到了请求,但未将其处理。可能是由于某些异常导致服务中处理请求的线程异常退出,从而导致整个服务无法响应。

根据所提供的线程信息链接(已无法访问),可以发现问题根源在于 Poller 线程。Poller 线程是一个死循环,正常情况下,只有在 tomcat 关闭时才会退出循环。问题中的情况则表明 Poller 线程在其他异常情况下也退出了循环,导致处理请求的 I/O 无法完成,进而使得服务假死。

检查服务中的代码,找到导致 Poller 线程退出的异常点,并进行修复。在问题中,可能是由于 OOM 导致的异常,建议排查并解决内存泄漏或其他内存问题。

相关阅读