ColdFusion服务器每小时崩溃

时间:2013-04-19 09:11:06

标签: coldfusion coldfusion-8

我面临严重的ColdFusion Server崩溃问题。我在该服务器上有许多实时站点,因此这是严肃而紧迫的。

以下是系统规格:

Windows Server 2003 R2,Enterprise X64 Edition,Service Pack 2 ColdFusion(8,0,1,195765)企业版

以下是硬件规格:

Intel(R)Xeon(R)CPU E7320 @ 2.13 GHZ,2.13 GHZ 31.9 GB的RAM

每小时都在崩溃。有人可以帮我找出确切的问题吗?我试图通过ColdFusion日志文件找到它但我在那里找不到任何东西。每次崩溃时,我都必须重置ColdFusion服务才能恢复它。

EDIT1

当我看到运行时日志文件“ColdFusion-out165.log”时,我发现以下错误

error ROOT CAUSE: 
java.lang.OutOfMemoryError: Java heap space

javax.servlet.ServletException: ROOT CAUSE: 
java.lang.OutOfMemoryError: Java heap space

04/18 16:19:44 error ROOT CAUSE: 
java.lang.OutOfMemoryError: GC overhead limit exceeded

javax.servlet.ServletException: ROOT CAUSE: 
java.lang.OutOfMemoryError: GC overhead limit exceeded

以下是我当前的JVM设置:

enter image description here

正如您所看到的,我的JVM设置是

最小JVM堆大小(MB):512

最大JVM堆大小(MB):1024

JVM参数

-server -Dsun.io.useCanonCaches=false -XX:MaxPermSize=512m -XX:+UseParallelGC -Dcoldfusion.rootDir={application.home}/../ -Dcoldfusion.libPath={application.home}/../lib

注意: - 当我尝试将最大JVM堆大小增加到1536并尝试重置coldfusion服务时,它不允许我启动它们并给出以下错误。

“Windows无法在本地计算机上启动ColdFusion MX Application Server。有关详细信息,请查看系统事件日志。如果这是非Microsoft服务,请与服务供应商联系,并参阅服务特定的错误代码2 。“

我应该无法将最大堆大小设置为1.8 GB,因为我使用的是64位操作系统。不是吗?

3 个答案:

答案 0 :(得分:5)

您可以为JVM提供多少内存取决于JVM的不足,而不是您的操作系统。您是否正在运行64位CF安装?回到CF8时代,这是不寻常的事情,值得一提。

基本上错误是说你使用了太多内存(你知道多少)。我要看看你在会话和应用范围上投入了多少东西,并剔除了不必要的东西。

会话范围内的对象特别糟糕:它们的占用空间比人们想象的要大得多,并且造成的问题比它们的价值还要大。

我还会查看您有多少非活动但未超时的会话,以期对会话超时更加激进。

查看您的查询,并删除您拥有的任何SELECT *,并将其剪切回您需要的列。将数据处理推送回DB而不是在CF中执行。

将计划任务停放到不同的CF实例上。

你在做大文件吗?要么阅读和处理它们,要么通过<cfcontent>提供它们?这可以很快地咀嚼记忆。

CFC中的所有函数局部变量是否都已正确变量?特别是那些最终进入共享范围的CFCs。

您是否意外启用了调试功能?

您是否大量使用自定义标记或使用<cfmodule>调入的文件?我听过自定义标签导致内存泄漏的错误故事。

抓住Mike BruntCharlie Arehart查看您的服务器配置/应用(他们显然会收取咨询费)。

我会更新这个,因为我想到了更多需要注意的事项。

答案 1 :(得分:0)

在管理员中打开ColdFusion监视器。用它来观察行为。查找长时间运行的流程和错误。

此外,请确保在ColdFusion服务器监视器中关闭内存监视。这将轻松打倒生产服务器。

答案 2 :(得分:0)

@Adil, 我有同样的问题,但它没有崩溃,但CPU使用率高达100%,不确定它与您的问题相关,但至少值得一看。 请参阅以下网址中的问题:

Strange JRUN issue. JRUN eating up 50% of memory for every two hours

我的博客条目

http://www.thecfguy.com/post.cfm/strange-coldfusion-issue-jrun-eating-up-to-50-of-cpu

对我来说,这是一个高流量的网站,并将客户端变量存储在注册表中,导致出现问题。

希望这有帮助。