gpt4 book ai didi

java - 为什么 Tomcat 5.5(带有 Java 1.4,在 Windows XP 32 位上运行)突然挂起?

转载 作者:行者123 更新时间:2023-11-28 22:39:09 25 4
gpt4 key购买 nike

我已经使用 Java 1.4 运行 Tomcat 5.5 一段时间了,现在有一个巨大的 Web 应用程序。大多数时候它运行良好,但有时它会挂起,没有生成异常,并且除了重新启动 Tomcat 之外没有让它再次运行的明显方法。允许 tomcat 实例在堆上有 1 GB 的内存,但很少超过 300 MB。有没有其他人遇到过这个问题,是否有解决方案?

澄清一下:我通过任务管理器和 Eclipse 确定了它使用了多少内存(我也尝试过在 Eclipse 之外运行它,但最终遇到了同样的问题,尽管它需要更长的时间)。使用 Eclipse,我查看通过它的小(可选)内存 Pane 分配的内存以及通过任务管理器分配给 javaw.exe 的内存量。我用的是sysdeo吗? Eclipse 的 tomcat 插件。

最佳答案

对于任何 jvm 进程,强制执行线程转储。在 Windows 中,我相信这可以在控制台窗口中使用 CTRL-BREAK 来完成。

在 *nix 中,它几乎总是“kill -3 jvm-pid”。

这可能会显示您是否有线程在等待数据库连接池/线程池等。

要检查的另一件事是您当前与 JVM 的连接数——使用 NETSTAT 或 SysInternals 实用程序,例如 tcpconn/tcpview(google it)。

此外,尝试使用 verbose:gc JVM 标志运行。对于 Sun 的 JVM,像“java -verbose:gc”一样运行。这将显示您的垃圾收集。如果它收集了很多东西(特别是完整的 Collection ),那么你可能有内存泄漏。完整的集合是昂贵的,尤其是在像这样的大堆上。

您如何确定仅使用了 300mb?

关于java - 为什么 Tomcat 5.5(带有 Java 1.4,在 Windows XP 32 位上运行)突然挂起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com