Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ColdFusion JVM:奇怪的内存行为_Java_Coldfusion_Garbage Collection_Jvm_Jconsole - Fatal编程技术网

Java ColdFusion JVM:奇怪的内存行为

Java ColdFusion JVM:奇怪的内存行为,java,coldfusion,garbage-collection,jvm,jconsole,Java,Coldfusion,Garbage Collection,Jvm,Jconsole,自上个月以来,我们公司的服务器Win2008ServerStd+IIS7+CF enterprise 9.0.1 hotfix2出现问题 我使用jConsole监视Coldfusion JVM 1.6.024活动,下面是我看到的: 注意14:10和14:15之间的奇怪曲线!那是什么 显然这不是一种标准行为,当它发生时,我的应用程序会挂起30到70秒 你知道什么会导致内存问题吗?似乎GC没有正确运行,或者挂起了自己 我不希望有一个快速的答案,我想可能有很多根本问题导致这一点,但。。。。我可以从哪里

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

我使用jConsole监视Coldfusion JVM 1.6.024活动,下面是我看到的:

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

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

你知道什么会导致内存问题吗?似乎GC没有正确运行,或者挂起了自己


我不希望有一个快速的答案,我想可能有很多根本问题导致这一点,但。。。。我可以从哪里开始调查呢?

可能是一个蜘蛛在抓取网站时创建了大量的会话,这会占用一段时间的内存。一旦爬行器停止爬行,这些会话将超时并被垃圾收集


我会将您的HTTP服务器日志与JVM日志进行比较。比较这段时间,看看是否有很多来自搜索引擎蜘蛛Googlebot、msnbot等的请求。

可能是蜘蛛在抓取网站时创建了很多很多会话,这会占用一段时间的内存。一旦爬行器停止爬行,这些会话将超时并被垃圾收集


我会将您的HTTP服务器日志与JVM日志进行比较。比较该时间段,查看是否有大量来自搜索引擎蜘蛛Google Bot、msnbot等的请求。

使用cfstat、perfmon、fusionreactor或cf performance monitor查看正在运行的请求和排队处理问题。您可能会看到运行的请求超过了cf admin中同时请求的设置。然后请求将开始排队。最后,如果您的服务器正在自行恢复,队列将被清除

这类事情可以由许多事情引起。例如,如果您的DB服务器速度减慢或出现问题,如果您的网络出现问题,或者如果网络端口正在重新同步,如果您的磁盘存在I/O问题等

我的猜测是,通过监视堆,你会让自己疲惫不堪,试图弄明白这一点。查看是否可以监视其中一个监视器,以查找可能是罪魁祸首的某些特定脚本


关于一些索引代理的另一个评论也是可能的。一系列索引肯定会导致行为。如果是这种情况,您可以查看同步请求设置。如果将其设置为默认值,您可能有足够的净空空间来增加它。

使用cfstat、perfmon、fusionreactor或cf performance monitor查看正在运行的请求和排队处理您的问题。您可能会看到运行的请求超过了cf admin中同时请求的设置。然后请求将开始排队。最后,如果您的服务器正在自行恢复,队列将被清除

这类事情可以由许多事情引起。例如,如果您的DB服务器速度减慢或出现问题,如果您的网络出现问题,或者如果网络端口正在重新同步,如果您的磁盘存在I/O问题等

我的猜测是,通过监视堆,你会让自己疲惫不堪,试图弄明白这一点。查看是否可以监视其中一个监视器,以查找可能是罪魁祸首的某些特定脚本

关于一些索引代理的另一个评论也是可能的。一系列索引肯定会导致行为。如果是这种情况,您可以查看同步请求设置。如果它设置为默认值,您可能有足够的头部空间来增加它。

Fabio, 两个月前,我遇到了同样的问题,在正常的时间间隔内,服务器占用了大约50%的CPU使用率。我在下面写了完整的故事 这可能会让你后悔这么久

我发现存储在注册表中的客户端变量导致了问题,我能够在VisualVM的帮助下捕捉到问题,我首先找到了导致问题的线程,并查看了精确查找解决方案的线索。

Fabio, 两个月前,我遇到了同样的问题,在正常的时间间隔内,服务器占用了大约50%的CPU使用率。我在下面写了完整的故事 这可能会让你后悔这么久


我发现存储在注册表中的客户端变量导致了问题,在VisualVM的帮助下,我第一次发现了导致问题的线程,并查看了“精确查找解决方案”的踪迹。

我唯一感到奇怪的是,突然出现了这么多线程。定期捕获线程转储jstack等。。是您的朋友,然后将这些线程转储与您的监控关联起来,其中显示了峰值


一旦您了解了所有额外线程都在做什么,根本问题就会变得更加明显。也许是更多的线程处理事务,但可能完全是另外一回事。

唯一一件真正奇怪的事情是IM O是拥有如此多线程的突然尖峰。定期捕获线程转储jstack等。。是您的朋友,然后将这些线程转储与您的监控关联起来,其中显示了峰值


一旦您了解了所有额外线程都在做什么,根本问题就会变得更加明显。也许是更多的线程处理事务,但可能完全是另外一回事。

马克,非常感谢你的回答!我们的大问题是,这种行为也发生在低流量时间段。我们怀疑IIS7和CF9之间的通信可能存在问题。为了增加参数,我们也从来没有看到过大量同时发生的请求。如果是CF和IIS,您可能会在server.log文件中看到一些错误。您可以尝试暂时禁用windows防火墙。有一件事会让我对你的假设感到疑惑,那就是它的随机性。如果你在某种程度上被阻止了,那会更容易预测。马克,非常感谢你的回答!我们的大问题是,这种行为也发生在低流量时间段。我们怀疑IIS7和CF9之间的通信可能存在问题。为了增加参数,我们也从来没有看到过大量同时发生的请求。如果是CF和IIS,您可能会在server.log文件中看到一些错误。您可以尝试暂时禁用windows防火墙。有一件事会让我对你的假设感到疑惑,那就是它的随机性。如果你在某种程度上被阻止了,那会更容易预测。非常感谢你的回答。只有一件事:你说的是寻找精确的解决方案。我该怎么做呢?如何在给定的时间范围内查看堆栈跟踪?此外:正如您从jconsole图表中所看到的,当jvm变得疯狂时,cpu使用率降至接近零的水平:使用jTop,您可能会发现哪个线程消耗了更多的CPU使用率,并尝试VisualVm线程检查器插件,这将帮助您了解线程跟踪日志。如果您想使用VISUALVM配置coldfusion,下面的文章将对此提供帮助。只需浏览一下我在回答中提到的如何获得一切的帖子。非常感谢你们的回答。只有一件事:你说的是寻找精确的解决方案。我该怎么做呢?如何在给定的时间范围内查看堆栈跟踪?此外:正如您从jconsole图表中所看到的,当jvm变得疯狂时,cpu使用率降至接近零的水平:使用jTop,您可能会发现哪个线程消耗了更多的CPU使用率,并尝试VisualVm线程检查器插件,这将帮助您了解线程跟踪日志。如果您想使用VISUALVM配置coldfusion,下面的文章将对此提供帮助。只需浏览一下我在回答中提到如何获取所有信息的帖子。有更新吗?你想出来了吗?没有…:-这可能与IIS应用程序池回收或jdbc驱动程序挂起有关。还不确定。我会不断更新这个问题。你可能会遇到我在这里发现的最大处理器问题:有更新吗?你想出来了吗?没有…:-这可能与IIS应用程序池回收或jdbc驱动程序挂起有关。还不确定。我将不断更新此问题。您可能遇到我在此处发现的最大处理器问题: