gpt4 book ai didi

linux - 在 "day of heavy load"之后,Linux 上的 Rebol 2 进程在 SIGTERM 上停止

转载 作者:太空狗 更新时间:2023-10-29 12:11:41 25 4
gpt4 key购买 nike

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

经过几天的工作,当 Rebol 工作进程应该退出时,进程开始消耗 100% 的 CPU,并且“什么都不做”。我用 strace 查看进程,当它在 100 个 CPU 中时,它不会以任何方式调用操作系统。我查看了 Cheyenne worker 代码(如果那里有任何错误)并且代码执行 OK 到 Rebol 命令 exit。这个命令让它永远循环。如果我尝试用 sigterm 终止进程,情况也是一样的。

然后我可以用 sigkill 杀死它。该进程在几天的重负载后才进入此状态,并且我无法在非生产环境或本地计算机上复制它。

我天真的想法是,它会一直循环,同时在退出之前尝试清除内存,或者可能是打开的文件/套接字。我用 lsof(和类似的)查看了之前/之后的过程,但由于该事件不容易重现,所以没有想出任何办法。

我的问题是:有没有人看到 Rebol2 在退出时进入永恒的 100% 循环,是在什么情况下?有没有人知道如何解决这个问题?

最佳答案

我在我们的 cheyenne 生产服务器上看到过这个问题,100% 的 cpu 没有响应,可能是在提供了一个很长的文件(响应中有很多数据)之后......从来没有设法找到更多的时间来诊断这个问题,结束在 go 中编写一个监视器,它会在很长时间内杀死 100% 的 cpu 进程。

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

你可以在docker容器中使用它

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

希望对您有所帮助。

关于linux - 在 "day of heavy load"之后,Linux 上的 Rebol 2 进程在 SIGTERM 上停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41881200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com