RUEN
К статьям
Бесплатно Настройка

Команды 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. Быстрая проверка, что система видит все карты.
nvidia-smi --query-gpu=index,name,temperature.gpu,power.draw,utilization.gpu,memory.used --format=csv
Только нужные столбцы в виде CSV — удобно писать в лог или отправлять в Telegram-бот.
nvidia-smi -q -d TEMPERATURE,POWER,CLOCK
Подробный отчёт: пороги троттлинга, лимиты мощности, текущие частоты.
nvidia-smi -q -d PERFORMANCE
Почему карта сбрасывает частоты: перегрев, лимит мощности, простой.
nvidia-smi -q -d ECC
Счётчики ошибок памяти ECC на картах, где она есть. Ненулевые значения — повод убрать карту из аренды.
sudo nvidia-smi -pl 300
Ограничить потребление карты в ваттах. Снижает нагрев и счёт за электричество ценой части производительности.
sudo nvidia-smi -pm 1
Включить persistence mode: драйвер остаётся загруженным, карты быстрее отвечают на запросы.
sudo nvidia-smi -r -i 0
осторожно Сбросить карту №0 без перезагрузки сервера. Только когда на ней нет процессов и аренд.
nvidia-smi topo -m
Как карты связаны между собой и с процессором: PCIe, NVLink. Важно для многокарточных аренд.
lspci | grep -i nvidia
Карты на шине PCIe независимо от драйвера. Если карты нет здесь — проблема в железе или райзере.
sudo lspci -vv -s 01:00.0 | grep -i lnksta
Скорость и ширина линии PCIe для карты (например, 16GT/s, x16). Адрес берётся из lspci.
dpkg -l | grep nvidia-driver
Какой пакет драйвера установлен и какой версии.
sudo apt-mark hold nvidia-driver-570
Заморозить пакет драйвера (подставьте свою версию). Автообновление драйвера под работающим демоном Vast ломает аренды.
nvidia-smi --query-gpu=index,fan.speed --format=csv
Обороты вентиляторов в процентах по каждой карте.

Хост Vast.ai

sudo systemctl status vastai
Жив ли демон Vast: active (running) и последние строки его лога.
sudo systemctl restart vastai
Перезапустить демон, если он завис или перестал отчитываться в панель. Идущие аренды это не останавливает.
sudo journalctl -u vastai -f
Лог демона в реальном времени.
sudo tail -f /var/lib/vastai_kaalia/kaalia.log
Подробный лог агента: проверки, self-test, связь с панелью, ошибки запуска контейнеров.
cat /var/lib/vastai_kaalia/host_port_range
Диапазон портов, который демон отдаёт под аренды. Его же нужно открыть в файрволе и на роутере.
cat /var/lib/vastai_kaalia/host_ipaddr
IP-адрес, который агент считает внешним адресом машины.
docker ps
Аренды клиентов, которые сейчас работают на машине: демон Vast запускает их как контейнеры.
vastai show machines
Ваши машины через CLI: id, статус, рейтинг, цены. Нужен pip install vastai и vastai set api-key <ключ>.
vastai self-test machine <id>
Самопроверка машины перед выставлением: карты, сеть, Docker. Запускать без активных клиентов, занимает около 6 минут.
vastai list machine <id> --price_gpu 0.25 --price_disk 0.003 --price_inetu 0.004 --price_inetd 0.004
Выставить машину в аренду: цена за 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 — самая частая причина упавших аренд.
sudo du -xh / --max-depth=2 2>/dev/null | sort -h | tail -n 20
Двадцать самых больших папок в системе — быстро понять, кто занял место.
du -sh /var/lib/docker /var/log
Размер конкретных папок; на хосте эти две растут быстрее всего.
lsblk -f
Диски, разделы, файловые системы и точки монтирования.
sudo fdisk -l
Диски и разделы с размерами. Полезно, когда новый SSD не виден в системе.
sudo nvme list
Модели и объёмы NVMe-накопителей (sudo apt install nvme-cli).
sudo smartctl -a /dev/nvme0n1
Здоровье диска: процент износа, ошибки, температура (sudo apt install smartmontools).
sudo fstrim -av
Сообщить SSD об освобождённых блоках. Обычно выполняется по таймеру раз в неделю.
mount | grep ^/dev
Что и куда примонтировано и с какими опциями.
sudo dmesg -T | grep -i -E "i/o error|nvme"
Ошибки диска на уровне ядра. Если они появились — планируйте замену.

Сеть и канал

ip a
IP-адреса и состояние интерфейсов (state UP).
ip r
Таблица маршрутов: через какой шлюз сервер выходит в интернет.
curl -4 ifconfig.me
Внешний IPv4-адрес, каким вас видит интернет и панель Vast.
ping -c 4 8.8.8.8
Есть ли связь и какая задержка. ping -c 4 vast.ai заодно проверяет DNS.
ss -tulpen
Кто слушает порты: программа, PID и адрес. Замена устаревшему netstat.
sudo ss -tnp | grep :22
Кто сейчас подключён к серверу по SSH.
nc -zv host 22
Проверить, открыт ли порт на другой машине — например, свой порт Vast снаружи, с VPS.
mtr -rw 8.8.8.8
Трассировка с потерями на каждом узле: видно, где у провайдера проблема (sudo apt install mtr).
speedtest-cli --simple
Скорость канала до ближайшего сервера (sudo apt install speedtest-cli). Для Vast важнее upload.
iperf3 -c <ip_vps>
Реальная скорость отдачи до вашего VPS в Европе или Азии; -R — в обратную сторону. На сервере VPS должен быть запущен iperf3 -s.
wget -O /dev/null http://speedtest.tele2.net/100MB.zip
Быстрый замер скорости скачивания без установки чего-либо.
sudo ethtool enp5s0 | grep -i speed
На какой скорости поднялся линк: 1000Mb/s или 100Mb/s. Частый сюрприз с плохим кабелем. Имя интерфейса — из ip a.
dig +short vast.ai
Проверить, что DNS отвечает.
sudo ufw status numbered
Правила файрвола с номерами (удалить правило — sudo ufw delete <номер>).
sudo ufw allow 40000:40100/tcp
Открыть диапазон портов под аренды Vast. Подставьте свой из host_port_range.

Службы и логи

sudo systemctl status <service>
Состояние службы и последние строки её лога.
sudo systemctl restart <service>
Перезапустить службу. start и stop — запустить и остановить.
sudo systemctl enable --now <service>
Включить автозапуск при загрузке и запустить прямо сейчас.
systemctl list-units --type=service --state=running
Что сейчас запущено.
systemctl --failed
Службы, которые упали при загрузке или позже.
sudo journalctl -u <service> -f
Лог службы в реальном времени.
sudo journalctl -u <service> --since "1 hour ago"
Лог за последний час. Понимает today, yesterday, а также дату и время.
sudo journalctl -b -1 -e
Лог предыдущей загрузки с конца: что случилось перед перезагрузкой или зависанием.
sudo journalctl -p err -b
Только ошибки с момента загрузки.
sudo journalctl --vacuum-size=500M
Ужать системный журнал до 500 МБ, если он занял диск.
last -n 20
Кто и когда входил на сервер, а также перезагрузки.
who
Кто подключён прямо сейчас.
sudo tail -f /var/log/auth.log
Попытки входа, в том числе перебор паролей по SSH.
sudo fail2ban-client status sshd
Сколько адресов забанено за перебор паролей.

Пакеты и обновления

sudo apt update
Обновить список пакетов. Ничего не устанавливает.
apt list --upgradable
Что можно обновить. Если в списке есть nvidia-driver — сначала apt-mark hold.
sudo apt upgrade
осторожно Установить обновления. На хосте с арендами драйвер и ядро обновляют только в окно обслуживания, сняв машину с аренды.
sudo apt install <package>
Установить пакет. sudo apt remove <package> — удалить.
apt search <word>
Найти пакет по названию или описанию.
dpkg -l | grep <word>
Установлен ли пакет и какой версии.
sudo apt-mark hold <package>
Заморозить пакет: обновления его не тронут. unhold — разморозить. Для драйвера NVIDIA обязательно.
sudo apt autoremove
Убрать ненужные зависимости и старые ядра, которые занимают место в /boot.
cat /etc/apt/apt.conf.d/20auto-upgrades
Включены ли автоматические обновления (Unattended-Upgrade "1"). На хосте их отключают или держат драйвер в hold.
sudo reboot
осторожно Перезагрузка. Все аренды на машине прервутся: сначала снимите её с аренды и дождитесь окончания заказов.
sudo shutdown -h now
осторожно Выключить сервер. sudo shutdown -r +10 — перезагрузить через 10 минут.

Доступ: SSH, файлы, сессии

ssh user@host -p 2222
Подключиться к серверу; -p нужен, если порт не 22.
ssh-keygen -t ed25519
Создать пару ключей на своём компьютере.
ssh-copy-id user@host
Положить свой публичный ключ на сервер, чтобы входить без пароля.
scp file user@host:/path/
Скопировать файл на сервер. Поменяйте аргументы местами, чтобы скачать.
rsync -avP src/ user@host:/dst/
Синхронизировать папку с докачкой и прогрессом. Для больших объёмов лучше scp.
tmux
Сессия, которая переживает разрыв SSH: запустили, отключились, вернулись через tmux attach. Отсоединиться — Ctrl+B, затем D.
screen -S name
То же, что tmux, но проще. Вернуться — screen -r name, отсоединиться — Ctrl+A, затем D.
nohup command &
Запустить команду в фоне так, чтобы она не умерла при выходе. Вывод пишется в nohup.out.
sudo -i
Стать root до команды exit.
passwd
Сменить свой пароль.
exit
Выйти из сессии (или Ctrl+D).

Сочетания, которые экономят время

Ctrl+C
Прервать текущую команду.
Ctrl+R
Поиск по истории команд: начните печатать, подставится последняя подходящая.
Tab
Автодополнение путей и команд. Дважды — показать все варианты.
command | less
Листать длинный вывод: q — выход, / — поиск.
command | grep word
Оставить только строки вывода, где есть слово.
command > out.txt 2>&1
Сохранить весь вывод, включая ошибки, в файл.
command1 && command2
Вторая команда выполнится, только если первая прошла успешно.
watch -n 5 'df -h; nvidia-smi -L'
Повторять команду каждые 5 секунд и показывать результат на одном экране.
alias gpu='nvidia-smi --query-gpu=index,temperature.gpu,power.draw,utilization.gpu --format=csv'
Короткое имя для длинной команды. Чтобы осталось навсегда, добавьте строку в ~/.bashrc.
man command
Справка по команде; короче — command --help.

Семь команд, которые стоит запомнить первыми

  • nvidia-smi — что с картами.
  • df -h — сколько места осталось.
  • htop — что грузит процессор и память.
  • sudo systemctl status vastai — жив ли демон Vast.
  • sudo journalctl -u vastai -f — что он пишет прямо сейчас.
  • ss -tulpen — кто слушает порты.
  • docker ps — какие аренды работают.

Куда дальше

Если сервер ещё не собран, начните с бесплатной инструкции по установке Ubuntu 22.04 Server: https://vast.sale/articles/a16. Как попадать на сервер без белого IP, разобрано здесь: https://vast.sale/articles/a17. Полная настройка хоста от железа до первого заказа и защита машины описаны в платных руководствах: https://vast.sale/articles/a6 и https://vast.sale/articles/a8. Не хотите настраивать сами — подключим ваше оборудование к Vast.ai под ключ: https://vast.sale/services.

Нужна помощь с переходом?

Сделаем настройку под ключ с гарантией запуска.

Смотреть услуги
© Vast Sale · Источник: https://vast.sale/articles/a19
Копирование, пересказ и обработка ИИ-системами допускаются только с сохранением активной ссылки на https://vast.sale