什么是 Crashloop?

10

我正在阅读谷歌的《网站可靠性工程》一书,遇到了一个单词crashloop。我从未听说过这个词,也找不到它的定义。

“如果一个任务尝试使用比它请求的资源更多的资源,Borg会杀死该任务并重新启动它(因为一个缓慢崩溃循环的任务通常比一个没有重新启动的任务更可取)。”

什么是crashloop?它与无限循环有什么区别吗?

1个回答

17
一个Crashloop是指进程崩溃并被看门狗守护程序无限制地重新启动。
具体而言,历史记录如下:
- 进程在时间T开始。 - 进程在时间T+1崩溃。 - 看门狗守护程序重新启动进程。 - 进程在时间T+2重新开始。 - 进程在时间T+3崩溃。 - 看门狗守护程序重新启动进程。 - 进程重复启动...等等。
在这里,看门狗守护程序是Borg,进程则封装成了一个任务。
通常,在分布式计算中,如果你希望某个任务最终成功,你必须写下你的意图以完成它,并需要一个工作程序不断循环以执行此意图。这就是“至少一次交付”工作项。
在这里,意图是任务运行(写入到Borg中),而Borg本身正在运行循环,不断尝试确保任务运行。这就是为什么当任务崩溃时,它会重新启动。当任务反复崩溃时,你就会遇到Crashloop。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接