# Устранение неполадок

Распространённые проблемы и решения при аренде GPU-серверов на маркетплейсе CLORE.AI.

{% hint style="success" %}
Все примеры можно запускать на GPU-серверах, арендуемых через [CLORE.AI Marketplace](https://clore.ai/marketplace).
{% endhint %}

{% hint style="info" %}
Это руководство основано на технической документации платформы CLORE.AI.
{% endhint %}

## Содержание

* [Проблемы при создании заказа](#order-creation-issues)
* [Проблемы с подключением](#connection-issues)
* [Проблемы с контейнером](#container-issues)
* [Проблемы с GPU](#gpu-issues)
* [Проблемы с оплатой](#payment-issues)
* [Ограничения платформы](#platform-limits)

***

## Проблемы при создании заказа

### Заказ неудачен: «Недостаточно средств»

**Причина:** Недостаточно средств для покрытия платы за создание и минимального депозита.

**Решение:**

* Проверьте ваш баланс в выбранной валюте (CLORE, BTC или USDT/USDC)
* Плата за создание взимается при создании заказа
* Пополните баланс на сумму, достаточную для нескольких часов аренды

### Заказ неудачен: «Сервер недоступен»

**Причина:** Сервер уже арендован или офлайн.

**Решение:**

* Обновите страницу маркетплейса
* Проверьте состояние сервера (индикатор онлайн/оффлайн)
* Для аренды Spot — вас могли перебить ставкой

### Заказ застрял в статусе «Создаётся»

**Причина:** Контейнер разворачивается или произошла ошибка.

**Решение:**

1. Подождите 2–5 минут (Docker-образ загружается)
2. Проверьте логи в **Моих заказах**
3. Большие образы (10 ГБ+) скачиваются дольше
4. Если застряло более 10 минут — отмените и повторите попытку

***

## Проблемы с подключением

### Не удаётся подключиться по SSH

**Причина:** Порт не настроен или контейнер не готов.

**Контрольный список:**

1. Порт 22 должен быть установлен как **TCP** (не HTTP)
2. Статус контейнера должен быть **Активен** (не Создаётся)
3. Используйте корректный сопоставленный порт из **Моих заказах**

**Правильная команда SSH:**

```bash
ssh -p <MAPPED_PORT> root@<PROXY_ADDRESS>
```

Где `<MAPPED_PORT>` — это публичный порт (например, 45678), НЕ порт 22.

### SSH работает, но веб-интерфейс не открывается

**Причина:** Порт установлен как TCP вместо HTTP, или сервис не запущен.

**Решение:**

1. Порты для веб-интерфейса должны быть установлены как **HTTP** (не TCP)
2. Сервис должен слушать на `0.0.0.0`, а не на `localhost`
3. Проверьте логи — сервис мог упасть при запуске

**Корректная настройка портов:**

```
22/tcp      - доступ по SSH
7860/http   - интерфейс Gradio/WebUI
8000/http   - сервер API
```

### Ошибка «Connection refused»

**Причина:** Сервис внутри контейнера не запущен или слушает по неверному адресу.

**Решение:**

1. Подключитесь по SSH к контейнеру и проверьте статус сервиса:

   ```bash
   ps aux | grep python
   netstat -tlnp
   ```
2. Сервис должен слушать на `0.0.0.0`, а не на `127.0.0.1`:

   ```bash
   # Неверно:
   python app.py --host 127.0.0.1

   # Верно:
   python app.py --host 0.0.0.0
   ```

### Ошибка «Connection timed out»

**Причина:** Неверный адрес/порт или проблемы сети.

**Контрольный список:**

1. Используйте адрес прокси из **Моих заказах** (не IP сервера!)
2. Используйте сопоставленный порт (публичный порт, не порт контейнера)
3. Используйте корректный протокол (http\:// для HTTP-портов)

***

## Проблемы с контейнером

### Контейнер постоянно перезапускается

**Причина:** Ошибка в команде запуска или недостаточно ресурсов.

**Решение:**

1. Проверьте логи в **Моих заказах**
2. Упростите команду запуска:

   ```bash
   # Плохо — длинная команда может сломаться:
   apt update && apt install -y ... && pip install ... && python ...

   # Лучше — начните с простой команды:
   sleep infinity
   ```
3. Затем подключитесь по SSH и настройте вручную

### Невозможно сбросить контейнер

**Причина:** Период ожидания между сбросами.

**Факт:** Сброс контейнера имеет **120 секунд** период ожидания.

**Решение:** Ждите 2 минуты между попытками сброса.

### Данные потеряны после перезапуска

**Причина:** Данные не находятся в постоянном хранилище.

**Важно:**

* Данные внутри контейнера **сохраняются** при сбросе контейнера
* Данные **теряются** когда заказ отменён или истёк
* Всегда скачивайте результаты перед завершением аренды:

  ```bash
  scp -P <port> root@<proxy>:/workspace/results.tar.gz ./
  ```

### Команда запуска не выполняется

**Причина:** Синтаксическая ошибка или проблема с образом.

**Типичные ошибки:**

```bash

# Ошибка: лишний пробел после \
apt update && \
apt install -y git   # <-- пробел перед следующей строкой

# Верно:
apt update && \
apt install -y git && \
python app.py
```

**Решение:**

1. Используйте простой запуск: `bash` или `sleep infinity`
2. Настройте всё через SSH
3. Или создайте кастомный Docker-образ с предустановленным ПО

***

## Проблемы с GPU

### GPU не виден в контейнере

**Проверьте:**

```bash
nvidia-smi
```

**Если команда не найдена:**

* Docker-образ должен поддерживать CUDA
* Используйте образы с поддержкой CUDA: `pytorch/pytorch:2.5.1-cuda12.4-cudnn9-runtime`

**Если GPU не отображается:**

* Проверьте, есть ли у сервера GPU (проверьте объявление на маркетплейсе)
* Свяжитесь с провайдером сервера

### Несоответствие версии CUDA

**Ошибка:** `Версия драйвера CUDA недостаточна для версии среды выполнения CUDA`

**Причина:** Версия CUDA в образе несовместима с драйвером сервера.

**Решение:**

* Проверьте версию драйвера: `nvidia-smi` (в правом верхнем углу)
* Используйте образ с совместимой версией CUDA
* Безопасный выбор: CUDA 11.8, CUDA 12.1

### Закончилась память GPU

**Ошибка:** `CUDA — недостаточно памяти`

**Решения:**

1. Используйте меньшую модель или квантизацию
2. Добавьте флаги оптимизации памяти:
   * Stable Diffusion: `--medvram` или `--lowvram`
   * LLM: `load_in_4bit=True` или `load_in_8bit=True`
3. Очистите память: `torch.cuda.empty_cache()`
4. Арендуйте сервер с большим объёмом VRAM

***

## Проблемы с оплатой

### Поддерживаемые валюты

CLORE.AI поддерживает три валюты:

* **CLORE** - собственный токен платформы
* **BTC** - Биткойн
* **USD** - стейблкоины (если включены провайдером)

### Заказ отменён: «Перебит»

**Причина:** Кто-то предложил более высокую цену на рынке Spot.

**Решение:**

* Используйте **On-Demand** для гарантированной аренды
* Или увеличьте вашу ставку на Spot

### Баланс списан, но заказ не создан

**Причина:** Плата за создание списывается даже если заказ не создаётся.

**Решение:**

* Плата за создание обычно минимальна
* Проверьте причину отмены в истории
* Свяжитесь со службой поддержки при повторяющихся проблемах

***

## Ограничения платформы

Проверено в кодовой базе CLORE.AI:

| Параметр                                 | Ограничение                 |
| ---------------------------------------- | --------------------------- |
| Порты на заказ                           | **5**                       |
| Всего переменных окружения               | **12 288 символов** (12 КБ) |
| Имя одной переменной окружения           | 128 символов                |
| Значение одной переменной окружения      | 1 536 символов              |
| SSH-ключ                                 | **3 072 символа**           |
| SSH-пароль                               | **32 символа**              |
| Jupyter-токен                            | **32 символа**              |
| Время ожидания между сбросами контейнера | **120 секунд**              |
| Диапазон портов                          | 1-65535                     |
| Протоколы портов                         | Только TCP или HTTP         |

***

## Переменные окружения

Используйте переменные окружения для доступа по SSH и Jupyter:

| Переменная      | Назначение             | Максимальная длина |
| --------------- | ---------------------- | ------------------ |
| `SSH_KEY`       | Ваш публичный SSH-ключ | 3 072 символа      |
| `SSH_PASSWORD`  | SSH-пароль             | 32 символа         |
| `JUPYTER_TOKEN` | Токен Jupyter Notebook | 32 символа         |

**Пример конфигурации:**

```
SSH_PASSWORD=mypassword123
JUPYTER_TOKEN=mysecrettoken
```

***

## Диагностические команды

```bash

# Проверка GPU
nvidia-smi

# Проверить использование памяти
free -h

# Проверить свободное место на диске
df -h

# Проверить запущенные процессы
ps aux | grep python

# Проверить открытые порты
netstat -tlnp

# Проверить последние журналы ошибок
dmesg | tail -50

# Очистить память GPU (Python)
import torch
torch.cuda.empty_cache()
```

***

## Получение помощи

Если проблема сохраняется:

1. Проверьте [Документация CLORE.AI](https://docs.clore.ai/)
2. Опишите проблему, приложив логи и скриншоты
3. Укажите ID заказа и ID сервера
