【问题标题】:Coldfusion threads slow.. what could be causing it..?Coldfusion线程慢..可能是什么原因造成的..?
【发布时间】:2013-02-22 06:59:42
【问题描述】:

最近我通过电子邮件从我的 CF 服务器收到错误消息:

“ColdFusion:无响应的服务器警报激活”

10 个或更多线程忙碌超过 60 秒。

  • 运行请求总数 - 28
  • 排队的请求总数 - 0
  • 模板运行请求 - 28
  • 模板队列请求 - 0
  • Flash 远程运行请求 - 0
  • Flash 远程处理排队请求 - 0
  • CFC 方法运行请求 - 0
  • CFC 方法排队请求 - 0
  • Web 服务运行请求 - 0
  • Web 服务排队请求 - 0

原因是cfthread 的使用需要很长时间吗?在我们的网站上进行处理时,他们有时不得不消耗大量来自外部服务的数据。或者可能是由于cfthread 任务相互重叠?

非常感谢任何帮助。

【问题讨论】:

  • 您的线程不应相互重叠,但如果您的代码创建了大量 cftreads,它们可能会争夺资源。如果您的服务器功率不足,您将有线程必须排队等待轮到它们。如果是这种情况,您有两个选择:加强服务器,或尝试优化代码(如果可能)以减少竞争线程的数量。另外,如果你在做数据库工作,你可以考虑优化你的查询和表(索引等)

标签: coldfusion


【解决方案1】:

检查您的 Coldfusion 管理员(在请求调整下),它允许您增加可用线程的数量、当您的请求超过可用线程时将它们排队的深度,以及在终止线程之前让线程运行多长时间。

如果您将自己限制为 10(我认为是默认值)并且 10 个人都点击了占用您可用线程的页面,那么 CF 会将进一步的请求排队。如果您的队列超过了它的限制,则不会接受新的请求(或者它被杀死了?)。那些运行超过 60 秒的线程将被终止,以使这些资源可供下一个人使用。

您确实需要找出需要 60 秒以上的时间来完成和优化它。如果你不能,那么你将不得不增加对更多线程的允许(这将需要更多内存)或者至少让你的队列加深(这会让你的用户感到沮丧,因为他们直到他们的线程得到一个响应才会得到响应执行的机会)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-31
    • 1970-01-01
    • 1970-01-01
    • 2015-01-07
    • 1970-01-01
    • 2010-11-01
    相关资源
    最近更新 更多