java - ColdFusion JVM : strange memory behaviour

标签 java coldfusion garbage-collection jvm jconsole

自上个月以来,我们公司的服务器(Win2008ServerStd + IIS7 + CF enterprise 9.0.1(hotfix2))出现了问题。

我使用 jConsole 来监视 Coldfusion JVM (1.6.0_24) Activity ,以下是我所看到的内容:

Curve1

Curve2

请注意 14:10 和 14:15 之间的奇怪“曲线”!那是什么?

显然这不是标准行为,当发生这种情况时,我的应用程序会挂起 30 到 70 秒!

您知道什么会导致内存问题吗? GC 似乎无法正确运行,或者自行挂起。

我不希望得到快速答案,我想知道可能有很多根本问题导致了这种情况,但是......我可以从哪里开始调查?

最佳答案

使用 cfstat、perfmon、fusionreactor 或 cf 性能监视器查看正在运行的请求以及因问题而排队的请求。您可能会看到正在运行的请求超出了同时请求的设置(在 cf admin 中)。然后请求将开始排队。最终队列将被清除(如果您的服务器正在自行恢复)。

这种情况可能是由多种原因引起的。例如,如果您的数据库服务器速度变慢或出现问题,如果您的网络有问题,或者网络端口正在重新同步,如果您的磁盘有 I/O 问题等。

我的猜测是,试图通过监视堆来解决这个问题会让你自己抓狂。看看您是否可以观察其中一台监视器以查找可能是罪魁祸首的某些特定脚本。

其他评论(关于某些索引代理)也是可能的。一连串的索引肯定会导致行为。如果是这种情况,您可以查看并发请求设置。如果将其设置为默认值,您可能有足够的空间来增加它。

关于java - ColdFusion JVM : strange memory behaviour,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10230895/

相关文章:

java - 如何从具有泛型的类访问.class?

regex - 减少链接的 URL 重定向 [IIS/Regex/ReWrite]

objective-c - 为什么垃圾收集不适用于线程?

java - 如何将对象的变量设为final?

java - Bash 脚本运行包含外部文件的 jar 不起作用

java - 在 JodaTime 中生成日期范围

java - 如何在初始化时在类的构造函数调用中容纳一个 FileInputStream 对象为 InputStream 对象?

mysql - ColdFusion 8 在没有数据源的情况下访问 MySQL 数据库

处理类对象的 MATLAB 弱引用

java - 将其他对象分配给同一变量后对象存在