我们使用的是 Windows Server 2003 VPS,运行 ColdFusion 9、Apache 2.2 和 MySQL。我们在此服务器上托管了大约 75-85 个网站,这些网站运行在共享代码库(自主开发的内容管理系统)上。
东部时间 1:05-1:10 左右,所有网站均无响应。尝试访问任何网站均导致浏览器立即出错 - 无法找到网站。我最初认为 Apache 出了问题,因此我重新启动了它。但这并未解决问题,因此我们重新启动了 ColdFusion。一旦 ColdFusion 恢复正常,网站便恢复正常。
现在我正在诊断问题,日志没有帮助。所有 CF 日志都没有任何该时间段的条目,因此我转向了 Apache。我在 Apache 的错误日志中唯一能找到的是:
[Thu Apr 07 13:07:17 2011] [warn] Server ran out of threads to serve requests. Consider raising the ThreadsPerChild setting
Apache 日志中没有任何其他内容表明存在其他问题。
我对此做了一些研究,似乎可以通过取消注释包含httpd.conf
然后修改来配置ThreadsPerChild httpd-mpm.conf
。我有点犹豫是否开始使用这些设置,因为我不确定这是否是问题的根本原因。
快速搜索error.log
显示,我们每天会收到 2-4 次此错误消息,这是我们第一次(据我所知)遇到这样的问题。
因此,我想我的最终问题是:这个错误信息是否有可能导致 ColdFusion 崩溃,或者我找错了地方?
如能提供任何建议,我们将不胜感激。
答案1
Apache 错误不太可能是问题所在。
由于您没有指定您的 CF 在哪个 servlet 引擎上运行,我假设它是默认的 jrun - 说得简单一点,它不是最稳定的软件。
查找其他可能包含 ColdFusion 内容的日志(特别是 java 日志;回到 jrun 日志)。我见过的这些无提示挂起的最常见原因是数据库连接问题(特别是 ODBC,有这些吗?)和(当然!)堆内存耗尽。