Гул вентиляторов сервера с Proxmox VE, работающих постоянно на максимальных оборотах, — типичная ситуация после установки гипервизора на обычное десктопное железо или самосборный сервер: материнская плата не получает корректные данные о температуре, а операционная система по умолчанию вообще не управляет кулерами. В результате домашняя лаборатория шумит как промышленная стойка, хотя реальная нагрузка на процессор близка к нулю.
Хорошая новость: Proxmox VE построен на Debian, поэтому весь арсенал Linux-инструментов для управления вентиляторами доступен из коробки. В этой статье разберём, как определить датчики, настроить автоматическое регулирование оборотов через fancontrol, что делать с серверными платами с IPMI и как не навредить железу слишком агрессивными настройками.
Почему Proxmox не управляет вентиляторами из коробки
Proxmox VE — это гипервизор, а не десктопная система. Разработчики исходят из того, что серверное оборудование управляет охлаждением самостоятельно: через BMC-контроллер, прошивку материнской платы или настройки BIOS/UEFI. Поэтому в веб-интерфейсе Proxmox вы не найдёте ни одного пункта, связанного со скоростью вращения вентиляторов.
На десктопных платах ситуация иная. После загрузки Linux управление PWM-контроллерами часто переходит от BIOS к операционной системе, а та без настроенного демона просто оставляет вентиляторы на последнем заданном режиме — нередко это 100% оборотов. Возможная причина постоянного шума кроется именно здесь, а не в неисправности железа.
Прежде чем что-либо настраивать, проверьте простую вещь: зайдите в BIOS/UEFI и посмотрите, есть ли там настройки Smart Fan, Q-Fan, Fan Curve или аналогичные. На многих платах достаточно выставить адекватную температурную кривую там — и вмешательство на уровне ОС вообще не потребуется.
Определяем датчики: lm-sensors
Первый шаг любой настройки — выяснить, какие температурные датчики и PWM-контроллеры видны системе. Для этого служит пакет lm-sensors. Установка выполняется из консоли узла Proxmox (через SSH или через Shell в веб-интерфейсе):
apt update && apt install lm-sensors
После установки нужно просканировать систему и определить доступные чипы мониторинга. Запустите команду и отвечайте на вопросы — в большинстве случаев безопасно соглашаться с предложенными вариантами:
sensors-detect
По завершении скрипт предложит загрузить найденные модули ядра. Проверить результат можно командой sensors — она выведет температуры ядер процессора, напряжения и, если повезёт, текущие обороты вентиляторов. Если раздел с оборотами (fan1, fan2 и т.д.) отсутствует, возможная причина в том, что ваш чип мониторинга не поддерживается ядром напрямую или требует дополнительного модуля.
- 🔍 coretemp — температуры ядер Intel, почти всегда определяется автоматически
- 🔍 k10temp — датчики процессоров AMD Ryzen и EPYC
- 🔍 nct6775 — популярный чип мониторинга на платах ASUS, ASRock, Gigabyte
- 🔍 it87 — чипы ITE на ряде плат Gigabyte, иногда требует ручной установки модуля
⚠️ Внимание: если sensors-detect не нашёл ни одного чипа управления вентиляторами, не пытайтесь загружать модули вслепую методом перебора. Неверный модуль в лучшем случае не сработает, в худшем — вызовет нестабильность системы. Сверьтесь со спецификацией вашей материнской платы.
Настройка fancontrol и pwmconfig
Когда датчики определены, можно переходить к автоматическому управлению оборотами. Стандартный инструмент для этого — демон fancontrol, который настраивается интерактивной утилитой pwmconfig. Установите пакет:
apt install fancontrol
Затем запустите мастер настройки. Утилита по очереди протестирует каждый найденный PWM-канал: остановит вентилятор, постепенно поднимет обороты и определит, какой канал к какому кулеру привязан:
pwmconfig
Во время теста внимательно слушайте сервер и сверяйтесь с выводом sensors — вам нужно понять, какой PWM отвечает за процессорный кулер, а какой — за корпусные. В конце мастер предложит задать температурные пороги: минимальную температуру (ниже неё вентилятор работает на минимуме) и максимальную (при достижении — полные обороты).
☑️ Настройка fancontrol в Proxmox
После сохранения конфигурации запустите демон и включите его автозагрузку:
systemctl enable --now fancontrol
Проверить, что всё работает, просто: понаблюдайте за оборотами в выводе sensors при изменении нагрузки, например во время stress или компиляции. Обороты должны плавно расти вместе с температурой, а не прыгать скачками.
⚠️ Внимание: не занижайте минимальные обороты процессорного кулера до полной остановки, если не уверены в пассивном охлаждении. Полная остановка вентилятора при росте нагрузки может привести к перегреву быстрее, чем демон успеет отреагировать. Оставляйте запас — минимум, при котором кулер гарантированно вращается.
Серверные платы: управление через IPMI
Если ваш Proxmox работает на серверной плате — Supermicro, ASUS с BMC, платах для Dell или HPE — управление вентиляторами обычно выполняет отдельный контроллер BMC, а не операционная система. Вмешательство fancontrol здесь может конфликтовать с логикой BMC, поэтому подход другой.
Для взаимодействия с BMC используется пакет ipmitool. Он позволяет читать датчики и, на многих платах, задавать режимы вентиляторов. Пример чтения данных:
apt install ipmitool
ipmitool sensor list
Команды установки скорости вентиляторов через raw-команды IPMI сильно различаются между производителями и даже ревизиями плат. Универсальной команды не существует — конкретные raw-коды для вашей платы нужно брать из документации производителя или профильных сообществ именно по вашей модели. Слепое копирование чужих raw-команд может перевести вентиляторы в непредсказуемый режим.
Почему серверные платы шумят даже без нагрузки
Многие серверные BMC рассчитаны на стоечное размещение и по умолчанию держат обороты высокими, чтобы гарантировать охлаждение в плотно набитой стойке. Некоторые платы поднимают обороты до максимума, если не видят «родной» вентилятор с нужным числом импульсов таходатчика, или если установлены сторонние жёсткие диски без температурных датчиков, распознаваемых прошивкой. Это защитное поведение, а не неисправность.
Мониторинг температур в веб-интерфейсе Proxmox
Настроив охлаждение, полезно видеть температуры прямо в панели Proxmox. Штатный интерфейс показывает температуру дисков (при установленном smartmontools), но датчики процессора и обороты вентиляторов по умолчанию не отображает. Для мониторинга используйте командную строку или внешние системы.
Простейший вариант — периодически проверять вывод sensors. Более продвинутый — подключить узел к системе мониторинга вроде Zabbix, Prometheus с экспортёром node_exporter (он собирает данные lm-sensors) или Netdata. Так вы получите графики температур во времени и сможете настроить оповещения о перегреве.
- 📊 sensors — мгновенный снимок температур и оборотов в консоли
- 📊 s-tui — терминальный монитор с графиками температуры и частоты CPU
- 📊 node_exporter + Grafana — полноценные дашборды с историей
- 📊 watch sensors — автообновление показаний каждые 2 секунды
Типичные проблемы и их диагностика
Не всегда настройка проходит гладко. Ниже — частые симптомы и направления проверки, которые не зависят от конкретной модели железа.
| Симптом | Возможная причина | Что проверить |
|---|---|---|
| sensors не показывает обороты вентиляторов | Чип мониторинга не определён или модуль не загружен | Повторить sensors-detect, проверить lsmod |
| pwmconfig пишет «no pwm-capable sensor modules» | Ядро не видит PWM-контроллер | Ручная установка модуля чипа (например, it87) |
| fancontrol запущен, но обороты не меняются | BIOS удерживает управление или неверная привязка PWM | Режим управления в BIOS, повторный pwmconfig |
| Вентиляторы на максимуме после перезагрузки | Служба fancontrol не стартует автоматически | systemctl status fancontrol, journalctl -u fancontrol |
| Серверная плата игнорирует настройки ОС | Охлаждением управляет BMC | Настройки Fan Mode в интерфейсе BMC/IPMI |
Отдельный случай — вентиляторы, которые «пульсируют»: набирают обороты и сбрасывают их каждые несколько секунд. Возможная причина — слишком узкий гистерезис между порогами температур в конфигурации fancontrol. Разнесите минимальную и максимальную температуры дальше друг от друга, и поведение сгладится.
⚠️ Внимание: любые правки файла/etc/fancontrolвступают в силу только после перезапуска службы командойsystemctl restart fancontrol. Если вы меняли пороги, а поведение не изменилось — в первую очередь проверьте, не забыли ли перезапустить демон.
Безопасность: как не перегреть сервер
Главный риск ручного управления вентиляторами — перегрев из-за слишком тихого профиля. Сервер с виртуальными машинами может резко увеличить нагрузку: запланированный бэкап, антивирусное сканирование в гостевой ОС, миграция ВМ. Кривая охлаждения должна выдерживать такие пики.
Практические правила, которые снижают риск:
- 🛡️ Максимальную температуру в fancontrol задавайте с запасом ниже критической для вашего процессора — точное значение смотрите в спецификации CPU
- 🛡️ После настройки обязательно проведите стресс-тест и убедитесь, что температура стабилизируется на безопасном уровне
- 🛡️ Настройте оповещения о перегреве через систему мониторинга — не полагайтесь только на слух
- 🛡️ Учитывайте летнюю жару: кривая, настроенная зимой, может не справиться в июле
Часто задаваемые вопросы
Можно ли управлять вентиляторами через веб-интерфейс Proxmox?
Штатно — нет, в интерфейсе Proxmox VE нет таких настроек. Управление выполняется через BIOS/UEFI, консольные утилиты (fancontrol) или BMC/IPMI на серверных платах. Существуют сторонние скрипты и плагины, но их стабильность и совместимость с обновлениями Proxmox не гарантированы.
Что делать, если pwmconfig не находит PWM-контроллеры?
Сначала убедитесь, что sensors-detect завершился успешно и модули загружены. Если чип вашей платы (например, семейства ITE) не поддерживается штатным ядром, может потребоваться ручная сборка модуля — это уже нестандартная процедура, и её целесообразность стоит оценивать отдельно. Альтернатива — управление кривыми через BIOS/UEFI.
Влияет ли fancontrol на виртуальные машины?
Напрямую — нет. Демон работает на уровне хоста и только меняет обороты вентиляторов. Косвенное влияние возможно лишь в одном случае: если из-за неудачной настройки процессор перегреется и начнёт троттлить, производительность всех ВМ снизится. Поэтому стресс-тест после настройки обязателен.
Как вернуть управление вентиляторами обратно в BIOS?
Остановите и отключите службу: systemctl disable --now fancontrol, затем перезагрузите сервер. После перезагрузки большинство плат возвращают управление прошивке. Дополнительно проверьте в BIOS, что режим Smart Fan включён.
Почему серверная плата держит вентиляторы на максимуме сразу после старта?
Это типичное защитное поведение BMC: до полной инициализации датчиков контроллер выставляет максимальные обороты, чтобы исключить перегрев. Обычно через минуту-две обороты снижаются до рабочих. Если этого не происходит, проверьте настройки Fan Mode в интерфейсе BMC и наличие всех «родных» датчиков.