我在 Windows 2008 Standard SP2 中安装了 IIS 的 coldfusion 8 多服务器,当一个实例“挂起”时(我无法从 fusion react 连接到该实例),Web 服务器会抛出“503 服务不可用”。剩余的实例似乎在 fusion react 中运行正常,但网站只有 503。我必须重新启动 jvm 进程和 IIS 才能让网站再次运行。
jvm 进程具有选项 -Xmx2048m,实例分配了 2.5Gb。也许 jvm 进程达到了 2Gb 限制并停止工作?IIS 和 CF 实例之间是否存在问题?
我是 CF 调试过程的新手,如何才能找到实例挂起的原因?
谢谢
@Mr Nil:服务器是 64 位的。我正在谷歌搜索 Mike Brunt 的帖子。谢谢您的指出。
@jfrobishow:是的,它达到了 2Gb。其他 jvm 设置:
java.args=-server -Xmx2548m -Xms768m -Dsun.io.useCanonCaches=false -XX:MaxPermSize=256m -XX:+UseParallelGC -Xbatch -Dcoldfusion.rootDir={application.home}/ -Djava.security.policy={application.home}/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib/coldfusion.policy -Djava.security.auth.policy={application.home}/servers/cfusion/cfusion-ear/cfusion -war/WEB-INF/cfusion/lib/neo_jaas.policy
答案1
如果您运行的是 32 位版本的 JRun,则无法分配超过 1Gb 的 RAM。您只能为 64 位版本的 JRun 分配该数量的 RAM。
这是 32 位 JVM 版本的问题,与 ColdFusion 或 JRun 无关。32 位 JVM 的最大可用空间为 1.4GB,但分配 PermGen 空间后,只剩下 1/1.2GB 可用空间。
我不是这方面的专家,但我认识一个人。在 Google 上搜索 ColdFusion JVM Tuning 和 Mike Brunt。您将找到大量有关此主题的信息。
答案2
您真的需要为堆分配那么多 RAM 吗?在 FusionReactor 崩溃之前,您是否看到过它的使用量上升到 2GB?
其他 JVM 设置是什么?