【发布时间】:2010-06-17 18:44:43
【问题描述】:
现在我们正在处理我的公司环境中的一个难题,我们被指责为服务器崩溃,但我不能 100% 确定我们是罪魁祸首。这是服务器环境:我们有一个主要的 Coldfusion 及其 MSSQL 数据库。然后,我们还有一个托管在不同云上的辅助数据库 (MySQL),用于执行各种任务。系统以这种方式构建的主要原因是因为主服务器由我们的内容管理系统操作,因此我们不允许修改它、添加表或任何类似的操作,因此我们使用备用数据库。按照设计,其中没有关键任务项目,并且页面的构建方式使得如果备用数据库没有返回任何行,页面将继续正确呈现。
基本上,有人告诉我,当备用 MySQL 服务器出现故障或停止接受连接时,它会占用整个主云,包括托管在其上的 5 个其他站点。我无权访问主要的 Coldfusion 或数据库日志,因为 CMS 提供商不会将它们提供给我。因此,我只能根据他们给我的解释的有效性来判断。
我们的 CMS 提供商对此行为的解释是,当 Coldfusion 查询数据库时,它会创建一个线程,并且如果数据库没有响应,线程会继续堆叠。最终处理器被封顶,服务器宕机。这是对 Coldfusion 运作方式的准确解释吗?如果是这样,有没有办法阻止它,可能有更短的数据库超时等?还是我们的 CMS 提出的整个解释只是一个红鲱鱼,而真正导致崩溃的是其他原因。
任何指导将不胜感激。
已回答问题 - 找到的文件 http://kb2.adobe.com/cps/180/tn_18061.html http://www.adobe.com/devnet/server_archive/articles/cf_timeouts_and_unresponsive_requests.html
全局设置超时请求不会使等待外部资源(cfquery/cfhttp 等)的内部进程超时。使这些超时的唯一方法是手动设置超时属性。不设置这可能会导致线程过载和服务器崩溃,就像我们发生的那样。
【问题讨论】:
标签: mysql coldfusion