ColdFusion 8性能和负载监控

3

问题: 有哪些提示和工具可以帮助我们在ColdFusion 8和JRE上进行故障排除和性能监控?

我们目前在做什么: 我们目前使用以下组合来帮助我们,但感觉我们并没有真正取得进展。我很想能够窥视JRE以查看发生了什么。

  • FusionReactor
  • /opt/coldfusion8/bin/cfstat
  • /opt/coldfusion8/bin/logs/* (主要是exception.log和cfserver.log)
  • ColdFusion调试输出(用于跟踪请求和查询响应时间)
  • Apache 'server-status'
  • 使用MySQL Administrator监视数据库活动

系统信息: 我们运行多个ColdFusion 8应用程序服务器。它们在RH Linux上安装了ColdFusion 8,0,1,195765 Standard,并使用默认的Sun JRE v1.6.0_04安装程序。我们的数据库位于专用数据库服务器上,在RH Linux上运行MySQL 5.0.45。

问题: 我们遇到了一些奇怪的问题,比如:

  • 页面加载中途挂起(浏览器窗口一直保持白屏状态,没有加载任何HTML)。如果停止请求并刷新,第二次就可以正常工作。
  • ColdFusion崩溃。重新启动ColdFusion时,异常日志显示license.properties文件出现问题。我们必须重新安装ColdFusion才能使其恢复正常。
  • 在exception.log中看到“打开的文件太多”。我们按照这里的说明更改了可以打开的文件数限制。

额外信息

  • 我们开始在应用程序中使用memcached来减少数据库调用的数量,希望这有所帮助。
  • 我们将客户端存储从数据库改为注册表,以测试是否通过不进行数据库调用来提高性能。
  • 我们计划更新JRE到最新版本(1.6.0_14),以查看它是否有所帮助。

这可能更适合服务器管理员(而不是程序员),因此我将其标记为应该移动到ServerFault。 - Adam Tuttle
2个回答

1

如果您的应用程序大量使用cfc组件,我强烈建议您升级JRE。旧版JRE存在一个bug,会导致对象创建变慢。

在Linux上使用注册表是行不通的。您只能使用数据库或cookie,但我不知道如果在Linux上选择注册表ColdFusion会怎么做。我建议使用数据库进行客户端存储。请注意,如果您使用cookie进行客户端存储,用户可以修改其系统上的cookie。

Apache JMeter可能是一个值得关注的工具,如果您有进一步的问题。

此外,这里还有更多关于性能问题和客户端存储的信息。


@Jayson “在 UNIX 系统上,注册表条目保存在 /opt/coldfusion/registry/cf.registry 中,这是一个文本文件,您可以直接复制和编辑。” http://livedocs.adobe.com/coldfusion/8/htmldocs/sharedVars_09.html - Henry
我们会处理这个问题。同时,我们正在研究MySQL优化,因为我们认为Java连接出现了堵塞。 - Mike Jr
@Jayson,你推荐使用哪个版本的JRE? - kevink
@kevink,我在我的CF服务器上使用版本6更新14,尽管更新15可用且应该可以正常工作。 - Jayson

0

尽管我已将您的帖子标记为“应该移至ServerFault”,但就这个问题而言,我认为您应该从注册表切换到数据库开始。正如您的其他问题所指出的那样,使用数据库连接池可减少额外的数据库访问量,而在Linux上使用注册表是不受支持的,这应该对您产生警示。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接