Бюджетный AI-сервер на майнинг-GPU: тест P104-100 для локальных LLM
TL;DR: Собрал inference-сервер на 2x P104-100 (8GB) за 5000₽. Qwen3-30B выдает 23 т/с, GPT-OSS-20B — 42 т/с. Ограничение до 120W почти не влияет на скорость. Окупается за 3-5 месяцев vs Claude API при объеме 2M+ токенов/мес.
Зачем мне локальные LLM?
Я автоматизирую бизнес-процессы через n8n и AI-агентов. API Claude/GPT отлично работают, но есть проблемы:
- Счета растут: $50-100/мес при 3M токенов
- Лимиты: Rate limits на пиковых нагрузках
- Приватность: клиентские данные не хочется отправлять в облако
- Эксперименты: спонтанные тесты промптов без оглядки на бюджет
Решение: собрать локальный сервер на дешевых GPU. Почему майнинг-карты? Нет видеовыходов = цена в 2-3 раза ниже gaming-аналогов при том же чипе. И ГЛАВНОЕ - ЦЕНА 2500 за 2 карты!
Железо: что у меня было
Базовый сервер (уже был в наличии):
- CPU: 2x Intel Xeon E5-2699 v4 (44 физ. ядра, 88 потоков @ 2.20GHz)
- RAM: 256GB DDR4
- SSD: 1TB NVMe
- PSU: 850W 80+ Gold
GPU Setup (тест 1):
- 2x ASUS ROG Strix P104-100 (8GB GDDR5X)
- Цена: 2500₽ за обе (Avito, б/у)
- TDP: 180W на карту (штатный)
Почему P104:
- Чип GP104 = GTX 1080 без видеовыходов
- 8GB VRAM хватит для Qwen3-30B Q4 (17.3GB на 2 карты)
- Драйвера: стандартные NVIDIA (Ubuntu 22.04, driver 535)
- ЦЕНА
Софт: Ollama + модели
Установка (5 минут)
# Ubuntu 22.04
curl -fsSL https://ollama.com/install.sh | sh
# Проверка GPU
nvidia-smi
# Output: 2x P104-100, 8GB каждая
# Запуск Ollama
systemctl start ollama
Загрузка моделей
# Qwen3-30B (квантизация Q4_K_M)
ollama pull qwen3:30b-a3b-q4_K_M
# Размер: 17.3GB (распределяется на 2 карты)
# Qwen3-14B (для сравнения)
ollama pull qwen3:14b-q4_K_M
# Размер: 9GB (влезает на 1 карту)
# GPT-OSS-20B (мой фаворит)
ollama pull gpt-oss:20b
# Другие модели для тестов
ollama pull mistral-small:24b
ollama pull phi3:14b-medium-128k-instruct-q5_K_M
Оптимизация: ограничение мощности
Проблема: P104 при 180W греется до 80°C, кулеры на 100%.
Решение: снизить TDP до 120W через nvidia-smi:
# Ограничить до 120W (обе карты)
sudo nvidia-smi -pl 120 -i 0,1
# Проверка
nvidia-smi -q -d POWER
# Power Limit: 120W (default 180W)
Результат:
- Температура: 65-70°C
- Шум: на 40% тише
- Скорость: просадка всего 5-10% (23→22 т/с на Qwen3-30B)
Результаты тестов
Основные модели
| Модель | VRAM | Скорость (т/с) | Примечание |
|---|---|---|---|
| Qwen3-30B-Q4_K_M | 17.3GB | 23 | 2 карты, быстрые ответы |
| Qwen3-14B-Q4_K_M | 9GB | 16 | 1 карта (вторая idle) |
| GPT-OSS-20B | 12.8GB | 42 | ⭐️ Лучший баланс скорости/качества |
| Mistral-Small-24B | 13.4GB | 10 | Медленнее, но хорошо для кода |
| Phi3-14B-Q5_K_M | 9.4GB | 15 | Компактная |
Что тестировал: промпт на креативность + код
Для оценки качества моделей использовал универсальный промпт, который проверяет:
- Генерацию кода (алгоритм игры)
- Креативность (фэнтези-история)
- Обоснование решений (почему цикл, а не рекурсия)
- Структурированность ответа
Промпт для теста
Ты - эксперт по алгоритмам и креативному мышлению. Вот задача:
Разработай простой алгоритм на Python для игры "Угадай число" (компьютер
загадывает число от 1 до 100, игрок угадывает с подсказками "больше/меньше").
Добавь креативный твист: после 5 попыток игра генерирует историю в стиле
фэнтези, где игрок - герой, а число - магический артефакт.
Обоснуй выбор структуры алгоритма (почему рекурсия или цикл?), протестируй
на примерах и объясни, как это демонстрирует баланс между эффективностью
и развлечением. Ответ должен быть на русском, длина - 250 слов.
Энергопотребление
# Измерено ваттметром
nvidia-smi dmon -s pucvmet
# GPU 0: 115W
# GPU 1: 118W
# CPU + RAM + SSD: ~150W
# Total: 380-400W
Стоимость электричества (Москва, ~5₽/kWh):
- 400W * 24ч * 30 дней = 288 kWh/мес
- 288 * 5₽ = 1440₽/мес
Практические кейсы
1. n8n автоматизация: анализ логов сервера
Workflow:
Trigger: Cron (каждый час)
↓
Read File: /var/log/nginx/error.log
↓
HTTP Request: http://localhost:11434/api/generate
Body: {
"model": "qwen3:30b-a3b-q4_K_M",
"prompt": "Найди критические ошибки в логах и предложи решения:\n{{$json.logs}}",
"stream": false
}
↓
Filter: IF errors found
↓
Telegram: Отправить алерт в канал
Скорость: ~3-5 секунд на анализ 500 строк логов
Экономия: вместо $0.05/запрос (Claude) = $0/запрос
2. AI-помощник для кода
# CLI wrapper для Ollama
alias codegpt='ollama run gpt-oss:20b'
# Пример использования
codegpt "Напиши PHP функцию для парсинга CSV с проверкой на UTF-8"
# Ответ за 2-3 секунды, 42 т/с
3. Генерация контента для блога
Промпт:
Напиши пост для LinkedIn (200 слов) про автоматизацию тестирования API через n8n.
Стиль: практичный, с примером кода. Аудитория: разработчики.
Результат (GPT-OSS-20B):
- Генерация: 8 секунд
- Качество: 8/10 (иногда нужна правка вручную)
- Vs Claude 4.5: Claude значительно лучше, но для черновиков норм
- С новыми моделями конечно не сравнить
Проблемы и решения
1. Ollama не видит вторую GPU
Симптом:
nvidia-smi
# Обе карты активны
ollama ps
# Только GPU 0 используется
Решение:
# Принудительно указать обе карты
export CUDA_VISIBLE_DEVICES=0,1
systemctl restart ollama
2. Overheating P104
Причина: старая термопаста, пыль в радиаторе
Решение:
- Замена термопасты (Arctic MX-4)
- Продувка сжатым воздухом
- Результат: 80°C → 70°C при 180W
3. Драйверы для P104
Важно: P104 не для майнинга не работают с драйверами >470.x
# Проверка версии
nvidia-smi
# Driver Version: 535.183
# Если проблемы — откатить до 470
sudo apt install nvidia-driver-470
Сравнение с API
Стоимость (месяц, 3M токенов)
| Вариант | Стоимость | Примечание |
|---|---|---|
| Claude 4.5 | 3M * $0.015 = $45 (4500₽) | Лучшее качество |
| GPT-5 | 3M * $0.01 = $30 (3000₽) | Баланс цены/качества |
| Локальный Qwen3-30B | 1440₽ электр. | + 5000₽ амортизация GPU (10 мес) = ~1900₽ |
Окупаемость железа:
- Экономия: 4500₽ - 1900₽ = 2600₽/мес
- Железо: 5000₽ / 2600₽ = 2 месяца (!!)
Качество (субъективно, на моих задачах)
| Задача | Claude 4.5 | GPT-4 | Qwen3-30B | GPT-OSS-20B |
|---|---|---|---|---|
| Код (PHP/Python) | 10/10 | 9/10 | 7/10 | 8/10 ⭐️ |
| Анализ данных | 10/10 | 9/10 | 8/10 | 7/10 |
| Креатив (посты) | 10/10 | 8/10 | 6/10 | 7/10 |
| Русский язык | 9/10 | 8/10 | 9/10 ⭐️ | 7/10 |
Выводы
✅ Плюсы локальных LLM на P104
- Цена: 2500₽ за 2 карты = копейки для inference
- Скорость: 23-42 т/с достаточно для real-time автоматизаций
- Приватность: данные не уходят в облако
- Эксперименты: генерируй сколько хочешь, без оглядки на $$$
- Энергоэффективность: 120W/карту ≈ электрочайник
❌ Минусы
- Качество: Claude/GPT-4 лучше на сложных задачах (9/10 vs 7/10)
- Настройка: 2-3 часа на первый запуск (драйверы, Ollama, модели)
- Шум: даже при 120W кулеры слышны (решение: серверная комната)
- VRAM лимит: 8GB/карта = максимум Qwen3-30B Q4 (нет Q6/Q8)
Когда выбирать локально
- ✅ Объем > 2M токенов/мес
- ✅ Нужна приватность (клиентские данные, GDPR)
- ✅ Много рутинных задач (логи, парсинг, генерация)
- ✅ Есть сервер 24/7 (уже плачу за электричество)
Когда API лучше
- ❌ Объем < 500k токенов/мес (API дешевле)
- ❌ Нужно топовое качество (Claude 4.5 для клиентов)
- ❌ Нет времени на настройку (API = 5 минут на регистрацию)
Что дальше?
Планы:
- Тест P102-100 (10GB) — обещают 2x скорость на Qwen3-30B
- Интеграция с n8n для клиентских проектов
- Fine-tuning Qwen3 на моих данных (промпты, код)
Хочешь повторить?
- ищи на Авито P104-100 (карт полно, фильтр: 8GB, до 3000₽)
- Мой Telegram: @oiv_an
Итого: P104-100 (8GB) за 2500₽ — отличный вход в локальные LLM. Qwen3-30B выдает 23 т/с, этого хватит для 90% автоматизаций. Окупается за 2 месяца vs Claude API. Рекомендую, если готов потратить пару часов на настройку.
Следующая статья: тест P102-100 (10GB) — посмотрим, действительно ли 2x быстрее и стоит ли доплачивать.