我必须运行一个旧版Zope2网站并对此有所不满。最大的问题是,它偶尔会锁定,以100%的CPU负载运行,并且不再响应请求。虽然无法定期重现该问题,但有时包含3个动态图的一页会触发该问题,因此我怀疑某种竞争状况会导致无休止的循环或阻塞的忙碌等待。
问题是,我还没有找到一种调试方法。Zope日志中没有任何内容,系统日志中也没有任何内容。我尝试了此问题的建议以获取堆栈跟踪,但唯一有效的信号是SIGKILL。
SIGKILL
还有另一种可能性可以找出卡住的过程在哪里?
如果该进程卡住了其他信号无法通过的方式,则您可能要考虑从调试器运行它,而不是尝试在运行时附加到它。
另外,它可能对其他调试策略也很有用,例如关闭代码的某些部分以找出仍然可以重现的最小情况,以便找出导致它更好的原因。