无法使用 gcloud-sdk 保持与虚拟机的 SSH 连接



我有一个用于PyTorch的谷歌云深度学习虚拟机映像,它使用SSH连接连接到Jupyter Notebook。如何更改我当前正在做的事情,以便即使我关闭笔记本电脑/暂时断开与互联网的连接,Jupyter 笔记本仍处于活动状态?

目前,在转动我的虚拟机并打开一个 tmux 窗口后,我使用以下命令启动 Jupyter 笔记本及其 SSH 连接:

gcloud compute ssh <my-server-name> -- -L 8080:localhost:8080

此代码取自此处深度学习图像的官方文档:https://cloud.google.com/deep-learning-vm/docs/jupyter

然后,我可以在 localhost:8080 上连接并做我需要做的事情。但是,如果我长时间开始训练模型并需要关闭笔记本电脑,当我重新打开它时,我的 ssh 连接会中断,Jupyter 笔记本会关闭,并且正在训练的模型会中断。

如何使此 Juptyer 笔记本保持活动状态,以便以后能够重新连接到它?

铌。我曾经使用谷歌云浏览器SSH选项,一旦进入服务器,就会启动一个tmux窗口和其中的jupyter笔记本。这很好用,意味着笔记本总是活着的。但是,对于预装了 CUDA 和 Jupyter 的 Google Cloud 映像,这不起作用,我能够连接的唯一方法是通过上述命令。

我以前在 GCP 上也遇到过这个问题,并找到了一种解决此问题的简单方法。一旦你进入计算引擎,运行linuxscreen命令,你会发现自己在一个虚拟终端中(你可以并行打开许多终端),在这里你会想要运行你长期运行的作业。

开始作业后,使用键从屏幕上分离,键Ctrl+a然后d。分离后,可以退出 VM,重新连接到 VM 并运行screen -r,你会发现作业仍在运行。

当然,您可以使用screen命令做很多很酷的事情,并鼓励您阅读此处的一些教程。

注意:请确保您的计算引擎实例不是抢占式计算机!

让我知道这是否有帮助!

我认为最好将Jupyter安装为服务器。 因此,即使您断开连接,您的作业也可以继续运行。

您可能还想知道一些事情。

这不是您要查找的多用户服务器。本文档介绍如何使用单个用户运行公共服务器。这只能由想要远程访问其个人计算机的人完成。即便如此,这样做需要彻底了解设置限制和安全影响。如果允许多个用户访问本文档中所述的笔记本服务器,则他们的命令可能会相互冲突、破坏和覆盖。

如果你想要一个多用户服务器,官方的解决方案是JupyterHub。要使用JupyterHub,您需要一个Unix服务器(通常是Linux)运行在网络上用户可以访问的地方。这可能会在公共互联网上运行,但这样做会带来额外的安全问题。

相关内容

  • 没有找到相关文章

最新更新