2

是否有任何方法/工具来分析 Java Web 应用程序中每个会话的内存使用情况?

更具体地说,我正在使用 Seam,并且我有一些特定于用户或用户当前会话的对象,因此它们被设置为存储在用户的会话中。

前段时间,我的应用程序在访问一定数量的用户时会耗尽内存,因此我将各种内容移出会话并进行分析,直到内存耗尽。然而,内存测量是在 JVM 级别。我真的很想要一种在会话级别监视内存使用情况的方法,不包括任何非会话内存使用情况。

很高兴有:

  • http 会话的总内存使用量(我可以将其与整个应用程序的内存使用量进行比较)
  • 每个会话的内存使用量,甚至是平均值。
4

2 回答 2

2

看看http://messadmin.sourceforge.net/

于 2009-08-03T16:18:41.723 回答
1

我经常使用Eclipse Mat来诊断类似的问题。如果您有大型会话,会话管理器会显示在“Dominator Tree”报告中。您可以轻松区分会话和应用程序其他部分的总内存使用情况。

您可以深入到各个会话并查看每个会话使用了多少内存。您还可以打开每个单独的会话并检查会话中的每个对象。

查看 MAT 提供的其他报告也是一个好主意。有时结果令人惊讶——例如,我们遇到了内存使用问题,结果证明是 JRE 类加载器问题。

于 2009-09-19T08:47:56.837 回答