与 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.ssh)[/usr/bin/ssh] 退出并返回代码 [255]