Не удается сохранить SSH соединение с виртуальной машиной, используя gcloud-sdk - PullRequest
1 голос
/ 28 марта 2019

У меня есть облачное хранилище Google Образ виртуальной машины для глубокого обучения для PyTorch, который использует SSH-соединение для подключения к ноутбуку Jupyter. Как я могу изменить то, что я делаю в настоящее время, чтобы ноутбук Jupyter оставался активным, даже когда я закрываю свой ноутбук / временно отключаюсь от Интернета?

В настоящее время после включения виртуальной машины и открытия окна tmux я запускаю Jupyter Notebook и его 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 в рабочем состоянии и иметь возможность подключиться к нему позже?

NB. Я использовал опцию SSH браузера Google Cloud и однажды на сервере запустил окно tmux и записную книжку jupyter внутри него. Это работало отлично и означало, что ноутбук всегда был жив. Однако с изображениями Google Cloud, в которых предустановлены CUDA и Jupyter, это не работает, и единственный способ, которым я смог подключиться, - через приведенную выше команду.

Ответы [ 2 ]

1 голос
/ 03 апреля 2019

Я тоже сталкивался с этой проблемой на GCP и нашел простой способ решения этой проблемы. После того, как вы запустите ssh'd в вычислительный движок, запустите команду linux screen, и вы окажетесь в виртуальном терминале (вы можете открыть много терминалов параллельно), и именно здесь вы захотите запустить свою долгосрочную работу.

Как только вы начали работу, отсоедините от экрана с помощью клавиш клавиши Ctrl+a, а затем d. После отсоединения вы можете выйти из ВМ, повторно подключиться к ВМ и запустить screen -r, и вы обнаружите, что ваша работа все еще выполняется.

Конечно, вы можете сделать много интересных вещей с помощью команды screen, и вы можете прочитать некоторые учебники, найденные здесь .

ПРИМЕЧАНИЕ. Убедитесь, что ваш экземпляр Compute Engine не является машиной с предварительным упуском!

Дайте мне знать, если это поможет!

0 голосов
/ 03 апреля 2019

Я думаю, что лучше установить Jupyter в качестве сервера . так что ваша работа может продолжаться, даже когда вы отключаетесь.

Есть кое-что, что вы также хотели бы знать.

Это не многопользовательский сервер, который вы ищете. Этот документ описывает, как вы можете запустить публичный сервер с одним пользователем. Это должен делать только тот, кто хочет получить удаленный доступ к своей персональной машине. Тем не менее, выполнение этого требует тщательного понимания ограничений настроек и последствий для безопасности. Если вы разрешите нескольким пользователям доступ к серверу ноутбука, как описано в этом документе, их команды могут конфликтовать, дублировать и перезаписывать друг друга.

Если вам нужен многопользовательский сервер, официальным решением является JupyterHub. Чтобы использовать JupyterHub, вам нужен сервер Unix (обычно Linux), работающий где-то, что доступно вашим пользователям в сети. Это может происходить через общедоступный Интернет, но это создает дополнительные проблемы безопасности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...