与 GCLoud VM 的已打开 SSH 连接是不是可以防止其冻结/崩溃?

Posted

技术标签:

【中文标题】与 GCLoud VM 的已打开 SSH 连接是不是可以防止其冻结/崩溃?【英文标题】:Does an opened SSH connection to a GCLoud VM prevent it from freezing/crashing?与 GCLoud VM 的已打开 SSH 连接是否可以防止其冻结/崩溃? 【发布时间】:2022-01-03 05:40:07 【问题描述】:

我有一个运行 Ubuntu 20.04 的 f1-micro gcloud vm 实例。 它有 0,2 vcpus 和 600mb 内存。

我写的是冻结/崩溃,它代表不再响应任何事情。

从我的监控中,我可以看到 CPU 的使用率达到了 40% 的峰值(通常稳定在 1% 以下),而内存始终在 60% 左右(这两个统计数据都是在我的 (nodejs) 服务器运行时)。

当我打开到我的实例的 ssh 连接并在后台运行我的 (nodejs) 服务器时,只要我保持 ssh 连接处于活动状态,一切都会正常工作。一旦我关闭连接,就需要几分钟,直到实例冻结/崩溃。在不关闭 ssh 连接的情况下,我可以让它运行几个小时而没有任何问题。

我没有从 gcloud 本身收到任何崩溃或冻结信息。该实例有一个绿色复选标记,并且仍在运行。我只是无法打开一个新的 ssh 连接,而且对这个实例再次做某事的唯一方法是重新启动它。

我已启用云日志记录,但其中也没有消息。

因此,有了这些知识,我的问题是 gcloud 是否会以某种方式增强 ssh 连接的 vm 以保持它们的活力? 因为我不知道还有什么可能导致这种行为。

我的(nodejs)服务器使用大约 120mb,另一个服务使用 80mb,gcp 监控代理使用 30mb。实例上的 linux free 命令显示可用内存在 60mb 到 100mb 之间。

【问题讨论】:

SSH 消耗资源(少量),这意味着如果问题是资源可用性(CPU、内存、网络),SSH 连接不会提高 Compute Engine 实例的正常运行时间。 F1-micro 是一个很小的实例。通常,系统挂起(抖动)是由资源匮乏引起的。 40% 等相对数字对于小实例大小意义不大。 谷歌云平台 (GCP) 计算引擎 (GCE) "N1" f1-micro 实例是 GCP 所说的“共享核心虚拟机”;更多关于here。我的第一步是查看您的应用程序在具有专用资源的 GCE 实例上是否会运行得更好:您可以找到完整列表 here。 【参考方案1】:

除了 John Hanley 和 Mike,您还可以根据需要编辑您的机器类型。

    在 Google Cloud Console 中,转到 Compute Engine 下的 VM Instance。

    选择实例名称以打开其概览页面。

    确保在编辑实例之前停止实例。

    选择符合您应用需求的机器类型。

    保存。

有关更多信息和指南,您可以参考以下链接:Edit Instance Machine Family Categories

【讨论】:

【参考方案2】:

由于没有答案可以解释我遇到的奇怪行为。 我也没有弄清楚,但至少我的服务器不会再崩溃/冻结了。

我通过使用forever 在实际后台作业中运行我的node.js 应用程序而不是像node main.js & 那样运行它来以某种方式修复它。

【讨论】:

以上是关于与 GCLoud VM 的已打开 SSH 连接是不是可以防止其冻结/崩溃?的主要内容,如果未能解决你的问题,请参考以下文章

Openstack Queen版本之guestfish修改centos7云镜像解决ssh无法连接VM实例

Gcloud Compute - 虚拟机不断终止

gcloud 组件更新失败

错误:(gcloud.compute.ssh)[/usr/bin/ssh] 退出并返回代码 [255]

错误:(gcloud.compute.ssh)无法获取资源:-权限不足

gcloud:ssh-ing到服务器时权限被拒绝(公钥)