在“重负载日”之后,Linux上的Rebol 2进程在SIGTERM上暂停,

我正在使用夏延一个相对高负载的Web应用程序。 它工作得很好,很快。 但是我有一个升级到Ubuntu 14.04后出现的问题,或者我开始注意到,因为负载增加了。

经过几天的工作,当一个Rebol工作进程应该退出,进程开始消耗100%的CPU和“什么都不做”。 我用strace来看进程,当它在100 CPU时,它不会以任何方式调用操作系统。 我查看了Cheyenne工作者代码(如果有任何错误),并且代码对Rebol命令退出执行OK。 这个命令使它永远循环。 如果我试图用sigterm杀死这个过程也是一样的

然后我可以用sigkill杀死它。 这个过程只有在重负载的几天之后才会进入这种状态,而且我还没有能够在非生产环境或本地计算机上复制它。

我天真的想法是,它退出之前,试图清除它的内存,或者打开的文件/套接字,永远循环。 我用lsof (和类似的)查看过程之前/之后的过程,但是由于事件不容易重现,所以没有想出什么是的。

我的问题是:有没有人看到Rebol2进入永恒的100%循环退出和在哪些情况下? 有没有人有解决这个问题的想法?

我已经看到我们的生产夏延服务器上,100%的CPU没有响应,可能在服务一个非常长的文件(响应中的大量数据)…从来没有设法找到时间来诊断更多的这个问题,结束写一个监控过去杀死100%cpu进程的时间太长了。

https://github.com/Softinnov/bearded-monitor

您可以在泊坞窗容器中使用它

https://hub.docker.com/r/softinnov/bearded-monitor/

希望能帮助到你。