GCP 虚拟机始终在不发出警告的情况下关闭



几个月来一直在使用 GCP 抢占式虚拟机,没有出现问题,但在过去的 4 周里,我的实例在运行 10 分钟到 20 分钟之间一直关闭。

我将在训练中,我的笔记本会突然断开连接。终端将显示此错误:

jupyter@fastai-instance:~$ Connection to 104.154.142.171 closed by remote host.
Connection to 104.154.142.171 closed.
ERROR: (gcloud.compute.ssh) [/usr/bin/ssh] exited with return code [255].

然后,我检查 VM 的状态,以查看它是否已关闭。

我搜索了终端回溯并找到了这个线程,这似乎很有希望:错误:(gcloud.compute.ssh( [/usr/bin/ssh] 退出,返回代码 [255]

当我运行sudo gcloud compute config-ssh我的 VM 在关闭之前运行的时间比平时长得多,但在大约一个小时后以相同的方式关闭。从那以后,回到相同的行为。

我知道当平台需要资源时,抢占式实例可能会关闭,但我的理解是这带有某种警告。我已经在关闭后检查了 GCP 服务器的状态,它们似乎很好。每次打开 VM 时,这种情况也会以相同的方式发生,这似乎太频繁而无法抢占。

我不确定在哪里寻找任何线索——还有其他人遇到过这样的问题吗?特别让我困惑的是,如果它实际上是一个SSH问题,为什么会导致虚拟机本身关闭,而不仅仅是断开连接?

非常感谢您的任何帮助!

您是否尝试设置关闭脚本并在文件中打印某些内容以在 VM 出现故障时验证其状态?

尝试将其作为关闭脚本

#!/bin/bash
curl "http://metadata.google.internal/computeMetadata/v1/instance/preempted" -H "Metadata-Flavor: Google" > /tmp/preempted.log

如果文件中有 TRUE,则是因为 VM 已被抢占。

如果 VM停止并且您与该 VM 具有活动的 SSH 连接(通过gcloud compute ssh(,则您收到错误是正常的。由于 VM 关闭,所有连接都将关闭,SSH 连接也会关闭(无法连接到已停止的实例(。VM 终止会导致 SSH 错误,而不是相反。

使用抢占式实例时,Google 可以随时回收实例。请注意(来自有关抢占式实例限制的文档(:

由于系统事件,计算引擎可能随时终止抢占式实例。计算引擎终止系统事件的抢占式实例的可能性通常较低,但可能每天和区域之间有所不同,具体取决于当前条件。

这意味着有一天,您的实例可能会运行 24 小时而不会被终止,但另一天,如果 Compute Engine 需要回收某些资源,您的实例可能会在启动 30 分钟后停止。

对"持续关闭"部分的评论: (我也经历过(

请记住,Google 更喜欢关闭最近启动的抢占式实例,而不是较早启动的实例。

下面的链接(以及之前提供的链接(有以下声明:

通常,计算引擎会避免抢占来自单个客户的过多实例,并尽可能抢占新实例而不是旧实例。

这通常意味着,是的,我想,如果您被抢占并再次启动,您很可能会一次又一次地被抢占,直到区域中的负载减少。

我很惊讶谷歌并没有简单地阻止你启动抢占式虚拟机一段时间(比如 30-60 分钟? - 在上下弹跳虚拟机和交叉手指上浪费了多少 CPU???

附言有一个肮脏的伎俩可以解决你的挫败感 - 除了抢占之外,有 2 个配置相同的 VM,但只有 1 个基础书磁盘。如果您在抢占方面度过了糟糕的一天,只需将启动磁盘"移动"到非抢占式 VM,启动它,然后继续。- 这是几个简单的gcloud命令来实现这一点,易于编写脚本且非常快速。不要告诉谷歌我告诉过你...

https://cloud.google.com/compute/docs/instances/preemptible#limitations

相关内容

最新更新