Команды Linux для хостера GPU: шпаргалка с поиском
Редакция Vast Sale,12 мин
Хосту Vast.ai не нужно быть администратором Linux, но десяток команд приходится набирать каждую неделю: посмотреть, что с картами, почему кончилось место, жив ли демон, кто занял порт. Здесь собраны самые нужные из них: только то, что реально пригождается на сервере под аренду GPU, с пояснением в одну-две строки. Наберите слово в поиске: «диск», «температура», «порт», «vast» — и останутся только нужные строки.
Команды проверены на Ubuntu 22.04 Server, на котором мы ставим хосты. Где нужны права администратора, стоит sudo. Команды с пометкой «осторожно» могут прервать аренду или удалить данные: читайте пояснение до нажатия Enter.
142 команды
Например:
Ориентация: файлы и папки
pwd
В какой папке вы сейчас находитесь.
ls -lah
Список файлов с правами, владельцем, размером и скрытыми файлами.
cd /var/log
Перейти в папку. cd - вернёт в предыдущую, cd без аргумента — в домашнюю.
cat file
Показать файл целиком. Для длинных файлов удобнее less file (выход — q, поиск — /).
tail -n 50 file
Последние 50 строк файла. tail -f file — следить за файлом в реальном времени, удобно для логов.
grep -n "error" file
Найти строки с текстом. -i — без учёта регистра, -r — искать по всей папке.
find / -name "*.log" -size +100M
Найти файлы по имени и размеру — например, логи, которые разрослись.
cp -r src dst
Скопировать файл или папку (-r — вместе с содержимым).
mv old new
Переместить или переименовать файл либо папку.
rm -rf folder
осторожно Удалить папку со всем содержимым без вопросов. Восстановить нельзя; опечатка в пути стоит дорого.
mkdir -p a/b/c
Создать папку вместе со всеми родительскими.
nano file
Простой редактор: Ctrl+O — сохранить, Ctrl+X — выйти.
chmod +x script.sh
Сделать файл исполняемым.
chown user:user file
Сменить владельца файла или папки (-R — вместе с содержимым).
ln -s /data/models ~/models
Символическая ссылка: папка или файл доступны по второму пути, например с большого диска.
history | grep nvidia
Найти команду, которую вы уже набирали. Ctrl+R — интерактивный поиск по истории.
sudo !!
Повторить последнюю команду с sudo, если забыли его набрать.
Что с сервером: нагрузка, память, процессы
htop
Живая картина по процессам, ядрам и памяти. Если не установлен — sudo apt install htop; выход — q.
top
То же, но есть в любой системе. %CPU — нагрузка процесса, RES — сколько памяти он занял.
uptime
Сколько сервер работает и средняя нагрузка за 1, 5 и 15 минут. Если цифры больше числа ядер — процессы стоят в очереди.
free -h
Память и swap в понятных единицах. Смотрите на столбец available, а не free.
nproc
Число ядер, доступных системе.
lscpu
Модель процессора, ядра, потоки, частоты, виртуализация.
ps aux | grep python
Найти процесс по имени. Первый столбец — пользователь, второй — PID.
kill PID
Мягко завершить процесс. kill -9 PID — принудительно, когда он не отвечает.
pkill -f name
Завершить все процессы, в команде запуска которых есть это слово.
sudo dmesg -T | tail -n 50
Сообщения ядра с временем: здесь видны ошибки GPU, диска, памяти и сети.
sudo dmesg -T | grep -i -E "xid|nvrm"
Только ошибки драйвера NVIDIA. Первое, что смотрят, когда карта «отвалилась» или упал self-test.
sensors
Температуры процессора и материнской платы. Ставится sudo apt install lm-sensors, затем sudo sensors-detect.
hostnamectl
Имя машины, версия Ubuntu и ядра одной командой.
uname -r
Версия ядра. Нужна, чтобы понять, под какое ядро собран драйвер после обновления.
timedatectl
Время, часовой пояс и синхронизация. Расхождение времени ломает TLS-соединения и путает логи.
Видеокарты: NVIDIA
nvidia-smi
Главная команда хоста: карты, версия драйвера, температура, потребление, загрузка, занятая память и процессы на каждой карте.
watch -n 2 nvidia-smi
Та же таблица, обновляется каждые 2 секунды. Выход — Ctrl+C.
nvidia-smi -L
Список карт с моделью и UUID. Быстрая проверка, что система видит все карты.
Выставить машину в аренду: цена за GPU-час, за ГБ диска в месяц и за ГБ трафика (в CLI единицы за гигабайт, в панели — за терабайт). В панели проще, CLI удобен для скриптов.
vastai unlist machine <id>
Снять машину с аренды: новые заказы не принимаются, текущие доработают. Делайте это перед обслуживанием.
vastai set min-bid <id> --price 0.10
Минимальная цена для прерываемых (interruptible) аренд.
vastai show user
Баланс, накопленный доход и данные аккаунта.
vastai --help
Полный список команд CLI; у каждой есть свой --help.
Docker
docker ps -a
Все контейнеры, включая остановленные. Без -a — только работающие.
docker stats --no-stream
Сколько процессора, памяти и сети занимает каждый контейнер прямо сейчас.
docker logs --tail 100 <container>
Последние 100 строк вывода контейнера. -f — следить в реальном времени.
docker images
Скачанные образы и их размер.
docker system df
Сколько места занимают образы, контейнеры и тома. Первое, что смотрят, когда кончился диск.
docker system prune
осторожно Удалить остановленные контейнеры, неиспользуемые сети и «висячие» образы. На хосте Vast — только без активных аренд: демон держит образы для быстрого старта.
sudo systemctl status docker
Работает ли служба Docker. Без неё демон Vast не запустит ни одной аренды.
docker info | grep -i -E "storage driver|root dir"
Где лежат данные Docker и какой драйвер хранения используется.
docker exec -it <container> bash
Открыть консоль внутри контейнера. Только для своих контейнеров — в аренды клиентов заходить нельзя.
Диски и место
df -h
Свободное место по разделам. Заполненный корень или раздел Docker — самая частая причина упавших аренд.