Java服务假死,如何诊断无响应问题?
问题描述
某服务下所有 URL 请求(包括无效 URL)均无法响应,表现为浏览器持续加载状态。初步排除系统内存、GC 情况等问题。线程堆栈信息过长,无法在此展示。日志中未发现异常。
诊断与解决方案
立即学习“Java免费学习笔记(深入)”;
从问题描述中,可以推测服务已经接收到了请求,但未将其处理。可能是由于某些异常导致服务中处理请求的线程异常退出,从而导致整个服务无法响应。
根据所提供的线程堆栈信息链接(已无法访问),可以发现问题根源在于 Poller 线程。Poller 线程是一个死循环,正常情况下,只有在 Tomcat 关闭时才会退出循环。问题中的情况则表明 Poller 线程在其他异常情况下也退出了循环,导致处理请求的 I/O 无法完成,进而使得服务假死。
检查服务中的代码,找到导致 Poller 线程退出的异常点,并进行修复。在问题中,可能是由于 OOM 导致的异常,建议排查并解决内存泄漏或其他内存问题。
以上就是Java服务假死且所有URL请求无响应,如何快速诊断并解决?的详细内容,更多请关注php中文网其它相关文章!
版权声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系 yyfuon@163.com