Ты собрал сервер с двумя RTX 6000 Blackwell. Запускаешь Llama 3.2 405B - и через пять минут комната превращается в взлетную полосу. Вентиляторы выходят на 90%, температура VRAM подбирается к 100°C, а соседи стучат по батареям. Знакомая картина?
Чертовски знакомая. NVIDIA всегда считала, что серверное железо должно реветь как раненый бизон. Но в 2026 году это уже не работает. Особенно когда этот "сервер" стоит в твоей спальне или офисе.
Перед тем как что-то менять: управление вентиляторами GPU через ПО может снять гарантию. Если у тебя enterprise-оборудование с сервисным контрактом - подумай дважды. Для домашних сборок и лабораторий - вперед.
Почему Blackwell так шумит (и почему это тупо)
Новые Blackwell B200 и RTX 6000/7000 серии - монстры потребления. До 1000W на карту в пике. Но самое интересное - архитектура охлаждения.
NVIDIA использует агрессивные кривые вентиляторов по умолчанию. Почему? Потому что перегрев VRAM на HBM3e стоит дороже, чем жалобы на шум. Но эта логика ломается, когда ты:
- Запускаешь инференс с паузами (чат-боты)
- Используешь неполную загрузку GPU
- Имеешь хороший airflow в корпусе
- Просто не хочешь сойти с ума от гула
Вот типичная ситуация из моего прошлого проекта: GPU нагревается до 65°C, вентиляторы выходят на 80%, хотя реально хватило бы 40%. Идиотизм.
Диагностика: что шумит и насколько
Первое правило борьбы с шумом - измерение. Не на глаз, не на слух. Конкретные цифры.
1 Узнай, что у тебя вообще есть
Открываешь терминал и пишешь:
nvidia-smi -q | grep -A 10 "Fan Speed"
Или более читаемый вариант (спасибо NVIDIA за обновления 2025 года):
nvidia-smi --query-gpu=fan.speed,temperature.gpu,power.draw --format=csv
Должен получить что-то вроде:
| GPU | Fan Speed | Temp | Power |
|---|---|---|---|
| 0 | 85 % | 72 °C | 320 W |
| 1 | 90 % | 78 °C | 350 W |
Видишь эти проценты? Это и есть твой враг. Все что выше 50% на Blackwell - уже заметно шумно. Выше 70% - невозможно работать в одной комнате.
Внимание! У некоторых карт RTX PRO 6000 Blackwell есть "тихий режим" в BIOS. Проверь через nvidia-smi -q | grep Performance. Если видишь "Quiet" - уже хорошо. Но обычно там стоит "Normal" или "Max Performance".
2 Проверь температуру памяти (самое важное!)
Температура GPU - это цветочки. VRAM на Blackwell - вот где ад. Особенно на картах с HBM3e.
nvidia-smi --query-gpu=memory.temp --format=csv
Если видишь значения выше 90°C - это красная зона. NVIDIA ставит thermal throttle на 105°C для VRAM, но уже при 95°C начинается деградация.
Почему это важно? Потому что вентиляторы охлаждают в первую очередь память. И если VRAM горячий - никакие настройки не помогут. Придется улучшать airflow. Об этом я писал в статье про интеллектуальное охлаждение.
Ручное управление: от тирана к диктатору
Теперь самое интересное - берем контроль. NVIDIA дает три способа управления вентиляторами:
- Через nvidia-settings (не работает в headless!)
- Через nvidia-smi (работает, но с ограничениями)
- Через драйвер напрямую (опасно, но эффективно)
Начнем с безопасного.
3 Фиксированная скорость вентилятора
Самый простой способ - заставить вентиляторы крутиться на определенном проценте:
sudo nvidia-smi -i 0 -pl 280 # Сначала ограничиваем мощность до 280W
sudo nvidia-smi -i 0 -fan 50 # Устанавливаем 50% скорости
Почему сначала ограничиваем мощность? Потому что если GPU потребляет 400W, а вентиляторы на 50% - он перегреется за минуты. Всегда сначала power limit, потом fan control.
Проверяем:
watch -n 1 "nvidia-smi --query-gpu=fan.speed,temperature.gpu,power.draw --format=csv"
Смотри на температуру. Если растет выше 80°C - увеличивай скорость или уменьшай power limit.
4 Автоматическая кривая (умный способ)
Фиксированная скорость - для ленивых. Умные люди делают скрипт с температурной кривой. Вот мой рабочий вариант:
#!/bin/bash
# fan_curve.sh - адаптивное управление вентиляторами для Blackwell
GPU_INDEX=0
TEMP_TARGET=70 # Целевая температура
HYSTERESIS=3 # Гистерезис, чтобы вентиляторы не дрыгались
get_gpu_temp() {
nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader,nounits -i $GPU_INDEX
}
set_fan_speed() {
local temp=$1
local speed
if [ $temp -lt 50 ]; then
speed=30
elif [ $temp -lt 60 ]; then
speed=40
elif [ $temp -lt 70 ]; then
speed=50
elif [ $temp -lt 80 ]; then
speed=60
elif [ $temp -lt 85 ]; then
speed=70
else
speed=85
fi
nvidia-smi -i $GPU_INDEX -fan $speed > /dev/null 2>&1
echo "GPU $GPU_INDEX: ${temp}°C -> ${speed}%"
}
# Основной цикл
while true; do
CURRENT_TEMP=$(get_gpu_temp)
set_fan_speed $CURRENT_TEMP
sleep 10
done
Сохраняешь как fan_curve.sh, делаешь исполняемым и запускаешь от root:
chmod +x fan_curve.sh
sudo ./fan_curve.sh
Важно! Этот скрипт не переживет перезагрузку. Для постоянной работы нужно делать systemd сервис. И да, он будет конфликтовать с любым другим софтом, который пытается управлять вентиляторами (включая драйвер NVIDIA).
Продвинутые техники: когда простого мало
Если у тебя несколько GPU (а у кого их нет в 2026?), ситуация усложняется. Особенно если карты разные или одна греется сильнее.
Мульти-GPU конфигурации
Вот сценарий из реального проекта с двумя RTX 6000 Blackwell:
#!/bin/bash
# multi_gpu_fan.sh
declare -A FAN_SPEEDS
FAN_SPEEDS[0]=40 # Верхняя карта (лучше охлаждается)
FAN_SPEEDS[1]=50 # Нижняя карта (горячее)
while true; do
for gpu in 0 1; do
temp=$(nvidia-smi --query-gpu=temperature.gpu --format=csv,noheader,nounits -i $gpu)
# Динамическая корректировка
if [ $temp -gt 75 ]; then
FAN_SPEEDS[$gpu]=$((FAN_SPEEDS[$gpu] + 5))
elif [ $temp -lt 65 ]; then
FAN_SPEEDS[$gpu]=$((FAN_SPEEDS[$gpu] - 2))
fi
# Ограничения
if [ ${FAN_SPEEDS[$gpu]} -lt 30 ]; then
FAN_SPEEDS[$gpu]=30
fi
if [ ${FAN_SPEEDS[$gpu]} -gt 80 ]; then
FAN_SPEEDS[$gpu]=80
fi
nvidia-smi -i $gpu -fan ${FAN_SPEEDS[$gpu]}
done
sleep 15
done
Этот скрипт помог решить проблему, описанную в статье про сбои vLLM на двух RTX 6000. Оказалось, одна карта перегревалась и вызывала throttling.
Интеграция с системными мониторами
Если используешь Grafana/Prometheus для мониторинга (а ты должен), можно прикрутить управление вентиляторами к нему. Пример экспортера для Prometheus:
#!/usr/bin/env python3
# nvidia_fan_exporter.py
import subprocess
import time
from prometheus_client import start_http_server, Gauge
gpu_temp = Gauge('gpu_temperature_celsius', 'GPU temperature', ['gpu_index'])
gpu_fan = Gauge('gpu_fan_percent', 'GPU fan speed', ['gpu_index'])
def get_gpu_info():
cmd = "nvidia-smi --query-gpu=index,temperature.gpu,fan.speed --format=csv,noheader,nounits"
result = subprocess.check_output(cmd, shell=True).decode().strip()
for line in result.split('\n'):
idx, temp, fan = line.split(', ')
idx = int(idx)
temp = float(temp)
fan = float(fan.rstrip('%'))
gpu_temp.labels(gpu_index=idx).set(temp)
gpu_fan.labels(gpu_index=idx).set(fan)
# Автоматическая регулировка
if temp > 75:
set_fan_speed(idx, min(80, fan + 10))
elif temp < 65:
set_fan_speed(idx, max(30, fan - 5))
def set_fan_speed(gpu_idx, speed):
speed = int(speed)
cmd = f"nvidia-smi -i {gpu_idx} -fan {speed}"
subprocess.run(cmd, shell=True, capture_output=True)
if __name__ == '__main__':
start_http_server(8000)
while True:
get_gpu_info()
time.sleep(10)
Опасные игры: разгон и андервольтинг
Ты все еще здесь? Значит, готов к хардкору.
Blackwell архитектура позволяет андервольтинг - снижение напряжения при сохранении частоты. Меньше напряжение = меньше тепла = меньше шума.
ВНИМАНИЕ: Это может сжечь карту. Это точно снимет гарантию. Не делай этого на производственных серверах. Я предупредил.
Для андервольтинга нужен nvidia-smi с поддержкой управления частотой (есть на consumer картах, на серверных - не всегда). Проверяем:
nvidia-smi -q -d SUPPORTED_CLOCKS
Если видишь список частот - можно играться. Пример для RTX 6000 Blackwell:
# Устанавливаем фиксированную частоту GPU и памяти
sudo nvidia-smi -i 0 -lgc 2100,2100 # GPU clock
sudo nvidia-smi -i 0 -lmc 4000,4000 # Memory clock
# Ограничиваем напряжение (если поддерживается)
sudo nvidia-smi -i 0 -pl 250 # Power limit до 250W
sudo nvidia-smi -i 0 -fan 40 # Вентиляторы на 40%
В моем тесте это снизило температуру с 78°C до 65°C при той же вычислительной мощности (для LLM inference). Шум упал с "вертолет" до "тихий компьютер".
Systemd сервис: чтобы работало после перезагрузки
Все эти скрипты бесполезны, если они не запускаются автоматически. Вот правильный systemd сервис:
# /etc/systemd/system/nvidia-fan-control.service
[Unit]
Description=NVIDIA Fan Control Service
After=multi-user.target
[Service]
Type=simple
ExecStart=/usr/local/bin/fan_curve.sh
Restart=always
RestartSec=10
User=root
[Install]
WantedBy=multi-user.target
Активируем:
sudo systemctl daemon-reload
sudo systemctl enable nvidia-fan-control.service
sudo systemctl start nvidia-fan-control.service
sudo systemctl status nvidia-fan-control.service # Проверяем
Что делать, когда ничего не помогает
Бывает. Карта все равно греется. Вентиляторы на 100%, а температура ползет вверх. Варианты:
- Проверь термопасту. На серверных картах она часто высыхает за 2-3 года. Замена снижает температуру на 10-15°C.
- Добавь корпусные вентиляторы. Особенно важно для multi-GPU. Об этом я подробно писал в статье про SFF-сборки.
- Используй водяное охлаждение. Для RTX 6000 Blackwell есть кастомные ватерблоки. Дорого, но эффективно.
- Понизь power limit. Если карта потребляет 400W, а ограничить до 300W - потеряешь 10-15% производительности, но температура упадет на 20°C.
Мой личный рецепт для домашнего сервера с двумя RTX 6000:
- Power limit: 280W на каждую
- Вентиляторы: 40% в простое, 60% под нагрузкой
- Температура GPU: 65-70°C
- Температура VRAM: 80-85°C
- Шум: сравним с игровым ПК, а не с промышленным чиллером
Частые ошибки (не повторяй их)
| Ошибка | Последствия | Решение |
|---|---|---|
| Установить вентиляторы на 20% | Перегрев за 5 минут, thermal throttle | Никогда не ставить ниже 30% на Blackwell |
| Забыть про power limit | Карта пытается взять 400W, вентиляторы не справляются | Всегда сначала -pl, потом -fan |
| Игнорировать температуру VRAM | Деградация памяти, артефакты | Мониторить memory.temp каждые 10°C GPU = 15°C VRAM |
| Запускать скрипт без systemd | После перезагрузки вентиляторы сбрасываются на 100% | Обязательно systemd сервис |
Будущее: когда NVIDIA наконец починит это
В драйверах 555.xx (релиз ожидается в Q2 2026) обещают наконец-то нормальный fan control API. С кривыми, профилями, и главное - работающий в headless.
Но пока что живем с костылями. И знаешь что? Эти костыли работают лучше, чем официальные инструменты.
Пока NVIDIA думает о датацентрах, мы в гаражах и домашних офисах собираем бюджетные AI-серверы и заставляем их работать тихо. Потому что шум - это не просто раздражение. Это показатель неэффективности. Каждый лишний децибел - это потраченная впустую энергия, лишний нагрев, сокращенный срок жизни железа.
Твой сервер не должен звучать как стартующий истребитель. Особенно когда он просто отвечает на вопросы в чате.