2

I am facing serious ColdFusion Server crashing issue. I have many live sites on that server so that is serious and urgent.

Following are the system specs:

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

Following are the hardware specs:

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

It is crashing on the hourly bases. Can somebody help me to find out the exact issue? I tried to find it through ColdFusion log files but i do not find anything over there. Every times when it crashes, i have to reset the ColdFusion services to get it back.

Edit1

When i saw the runtime log files "ColdFusion-out165.log" so i found following errors

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

Here are my current JVM settings:

enter image description here

As you can see my JVM setting are

Minimum JVM Heap Size (MB): 512

Maximum JVM Heap Size (MB): 1024

JVM Arguments

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

Note:- when i tried to increase Maximum JVM Heap size to 1536 and try to reset coldfusion services, it does not allow me to start them and give the following error.

"Windows could not start the ColdFusion MX Application Server on Local Computer. For more information, review the System Event Log. If this is a non-Microsoft service, contact the service vendor, and refer to service-specific error code 2."

Should i not able to set my maximum heap size to 1.8 GB, because i am using 64 bit operating system. Isn't it?

4

3 回答 3

5

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

基本上,错误是说明您使用了过多的 RAM 来获得可用的内存(您知道)。我会看看你在会话和应用程序范围中投入了多少东西,并剔除不必要的东西。

会话范围内的对象特别糟糕:它们的足迹比人们想象的要大得多,并且造成的麻烦比它们的价值要多。

我还会查看您有多少非活动但未超时的会话,以期对您的会话超时更具侵略性。

查看您的查询,删除所有查询,SELECT *然后将它们缩减为您需要的列。将数据处理推回数据库,而不是在 CF 中进行。

将计划任务集中到不同的 CF 实例上。

你对大文件做任何事情吗?要么阅读和处理它们,要么通过<cfcontent>? 这可以非常快速地咀嚼记忆。

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

您是否不小心打开了调试功能?

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

Mike BruntCharlie Arehart看看你的服务器配置/应用程序(他们显然会收取咨询费)。

当我想到更多需要注意的事情时,我会更新这个。

于 2013-04-19T21:47:22.387 回答
0

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

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

于 2013-04-19T12:26:10.297 回答
0

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

奇怪的 JRUN 问题。JRUN 每两个小时消耗 50% 的内存

我的博客条目

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

对我来说,这是一个高流量站点,并将客户端变量存储在注册表中,这使事情出错了。

希望这有帮助。

于 2013-04-20T04:50:15.490 回答