Автор: Александр Гончаренко Редактура: Андрей Шадриков, Илья Бакалец

Введение

В этой статье мы расскажем о нескольких Linux-командах — они ****позволят сильно упростить работу любого Data Scientist'а. Рассмотрим распространенные задачи, которые могут перед нами возникнуть, и решим их вместе 🙂

Работа с выделенным сервером

Обычно мы обучаем модели не на своем железе, а на выделенном сервере. К нему мы можем подключиться через ssh.

Одна из проблем такого подключения — при закрытии ssh-соединения наш сеанс на сервере прерывается. Следовательно, если мы подключимся и запустим какую-нибудь команду (например, python train_model.py), то после закрытия соединения программа перестанет выполняться.

Как этого можно избежать?

Screen и Tmux

Screen — ****это ****команда для запуска новой виртуальной сессии, которая будет выполняться на заднем фоне.

Для этого нам достаточно обратиться к команде screen -s name (имя сессии можно не указывать): у нас появится новая сессия, где можно запустить команду. После этого мы отключимся, но команда продолжит выполняться.

Если мы подключимся обратно — сможем вернуться на эту сессию с помощью screen -r name. При запуске одной виртуальной сессии необязательно указывать ее имя. Увидеть список всех сессий можно через screen -ls. А отсоединиться от запущенной сессии — через CTRL+A и затем D.

Есть и другая команда — Tmux. Она работает идентично Screen.

Ниже представлена таблица соответствия команд для Screen и Tmux:

Функция Screen Tmux
Начать новую сессию с именем session_name screen -S session_name tmux new -t session_name
Подключиться к сессии с идентификатором process_id или с именем session_name screen -r process_id/session_name tmux a -t process_id/session_name
Переименовать сессию Ctrl+a :sessionname session_name Ctrl+b $
Отсоединиться от сессии Ctrl+a d Ctrl+b d

Для обеих команд можно изменить escape комбинацию клавиш. Как это сделать? Для Tmux нужно создать файл ~/.tmux.conf и добавить туда строчку ****set-option -g prefix <новый_символ>, а для Screen — создать файл ~/.screenrc и добавить туда escape <новый_символ>.

Можно заметить, что файлы конфигурации начинаются с символа .. Поэтому их называют dotfiles. Большинство инструментов хранят здесь свои настройки. Часто их удобно хранить в гите или облаке — тогда ими можно будет удобно пользоваться на новом сервере и каждый раз не вспоминать, где настраивается тот или иной hotkey. Но важно внимательно отслеживать, что именно лежит в ваших dotfiles, чтобы нечаянно не поделиться с кем-то своими паролями или приватными ключами.

Профилирование ресурсов

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

Давайте разберемся, как можно посмотреть применение разных ресурсов.

CPU+RAM