2008-11-12 35 views
8

我有一个用ColdFusion编写的Web应用程序,它定期开始使用100%的服务器CPU并使ColdFusion服务崩溃。错误的ColdFusion应用程序的Windows CPU通知

因为我一直无法重现自己的问题,我想找到一个实用程序时的CPU占用率开始上升,这将通过电子邮件通知我,这样我就可以在服务器上跳,看FusionReactor看发生了什么事情,并找出行为不端的代码。

我用Google搜索,并一直未能找到合适的工具,所以我认为我会问其他的程序员是否已经找到了一个工具,它可以做这样的监测。鉴于我的需求的具体情况,我宁愿不写我自己的监测工具。

如果您有其他建议来解决整体问题,我很乐意听到这些。

回应的答案:

使用Windows性能监视器来触发命令行听起来前途。任何人都可以指导我如何做到这一点的教程?

我们没有设置接收SNMP陷阱的监控系统。

我们正在运行ColdFusion 8 Standard Edition,它不包含ColdFusion性能监视工具 - 只有Enterprise包含这些工具。

彼得·鲍的答案很可能将使我能够解决的问题,但它并不能帮助我主动解决问题为CPU开始秒杀,所以我还在寻找一个通知解决方案。

回答

4

几个星期前我有类似的问题,并被定向到一个名为AlwaysUp的程序。

http://www.coretechnologies.com/products/AlwaysUp/

显示器通过任意组合的任何过程:

  • 内存使用率
  • CPU使用率
  • 反应迟钝
  • 运行自定义脚本,以确定是否应当重置

从这里您可以重新启动服务,或发送通知电子邮件,或运行脚本记录东西,等等。

他们有30天的演示,我在第二天被出售..一个很好的快速修复你会发现问题的最底层。

+0

谢谢,这听起来像我正在寻找解决这个持久但偶然的问题。 – davidcl 2009-01-19 20:16:30

2

在Windows上,您可以使用Windows标准的性能和监视工具(perfmon)。当CPU达到某个特定点时,它可以触发一个SNMP通知,该通知可以被大多数系统监视工具采用,并以这种方式提醒您。它也可以运行命令或做其他各种有用的事情,这些事情可能会帮助你完成任务。

+0

你可以提供更多有关perfmon运行命令的细节吗?我认为这将符合我的需求。 – davidcl 2008-11-12 03:29:00

1

如果您正在运行Coldfusion 8 - 性能监视器,则可以使用另一种方法。您可以设置警报以发送电子邮件,根据不同的标准调用另一个CFC等。

我使用的服务器监控了很多 - 这是即使我没有用警报自己太多,他们可能是值得寻找到,因为他们看起来很容易设置一个伟大的工具。

至于整体的方法...

在我们公司,我们使用Windows性能监视器从一台服务器轮询我们所有的CF服务器每30秒得到一些指标,如总的CPU和平均响应时间。我们将其记录到一个CSV文件。每隔几分钟运行一次计划任务,读取这些文件的详细信息并将其保存到数据库表中。然后截断这些文件,以免它们变得太大。

最后的话,每天一次,我们获取发送详细说明所有的服务器指标,我们该图表为我们所有的服务器CPU和平均响应时间技术部门的报告。

我们认为,这是初守在开发商的忧患意识和发现趋势(如CPU利用率差)服务器性能的好办法。我们发现它非常有效,因为在开始衡量指标之前,您无法确定自己是否表现糟糕。

1

您不一定需要此通知 - FusionReactor具有日志文件,因此您可以在发生这些事件后检查它们,并确定当时正在运行的脚本。

如果您不确定它何时发生,我相当肯定其中一个日志包含内存和CPU使用情况 - 尽管我现在不记得名称是什么,但是有一个关于日志和你应该找到相关的信息。

+0

好点。我可能需要扩展FR的日志记录以确保请求日志保留足够长的时间以将它们关联到资源日志,但这是一个很好的观点。 – davidcl 2008-11-13 16:31:36

相关问题