инженерная культура
86
0
19 января 2026
инженерная культура

Как инженеры определяют тепловые ограничения серверного оборудования

Изображение создано
с помощью нейросети
Изображение создано с помощью нейросети
86
0
19 января 2026

В современных высокопроизводительных системах используются мощные вычислительные компоненты с высоким тепловыделением. Но серверы не могут работать на пределе: требования дата-центров ограничивают тепловой режим. Задача инженера здесь — выстроить систему так, чтобы оборудование не перегревалось и при этом не теряло в производительности.

Анатолий Белановский, к.ф.-м.н. по специальности «Физика конденсированного состояния» и старший инженер в YADRO, показывает методику, как быстро определить тепловые ограничения процессоров, модулей памяти, накопителей, сетевых контроллеров и элементов питания. Она будет полезна при аудите существующей инфраструктуры, оптимизации компоновки и нагрузок, приемочных испытаниях и ускоренного прототипирования систем охлаждения.

Из статьи вы узнаете
  • какие есть факторы нагрева и охлаждения серверного оборудования
  • почему важно исследовать результаты ручного тестирования
  • как построить и использовать температурную модель
  • что такое метод планирования эксперимента

Оценка рисков перегрева

Чтобы управлять рисками, которые возникают из-за перегрева компонентов в экстремальных режимах, нужно понимать «узкие места» и ограничения платформы. Это требует сложного и трудоемкого анализа. К нему относится CFD-моделирование (Computational Fluid Dynamics), физические испытания в термокамерах или размещение массива дополнительных датчиков. Такие подходы очень точны, но дорогостоящи, а еще требуют времени и специальных компетенций. Всё это мешает использовать их для оперативной диагностики в реальной эксплуатации или при массовой оценке парка оборудования.

Методика, которую я опишу дальше, направлена на оперативную, неинвазивную оценку термических рисков. Развертывать сложные измерительные стенды здесь не нужно. В основе методики:

  • комбинация контролируемого стресс-тестирования компонентов,
  • синхронный мониторинг стандартных температурных сенсоров и параметров системы охлаждения,
  • последующий анализ динамики теплового отклика,
  • создание упрощенной тепловой модели.

Такой подход позволяет быстро идентифицировать компоненты, которые работают на пределе тепловых возможностей, оценить эффективность системы охлаждения в ряде типовых конфигураций и выявить риски перегрева при разных сценариях нагрузки.

Для примера возьмем одну из типовых конфигураций сервера: диски SAS/NVME в передней корзине, процессор (CPU), системный вентилятор (SYS_FAN), модули памяти (DIMM), блоки питания (PSU), графический процессор (GPU). Влияние компонентов друг на друга я указал в таблице:

 Как компоненты сервера влияют друг на друга

Итак, наша задача — определить тепловые ограничения сервера. Ключевая сложность здесь в количестве тестовых комбинаций: их может быть больше 1000. При этом время одного тестового прогона занимает минимум 25 минут. Сервер во время каждого прогона подвергается целевой нагрузке с заданными параметрами, а дальше нужно зафиксировать стабилизировавшиеся температурные показатели доступных датчиков. Между прогонами систему нужно охлаждать до исходного состояния. Полный цикл испытаний может растянуться на несколько недель.

Для оптимизации процесса я построю тепловую модель, которая опишет взаимное влияние компонентов системы и позволит прогнозировать их температуру при разных режимах работы.

Что показало ручное тестирование

Чтобы определить тепловые ограничения серверного оборудования, в первую очередь я изучил результаты ручного тестирования, где последовательно изменялись количество дисков, объем RAM и TDP процессоров. Для оценки термоустойчивости каждый набор конфигураций тестировался в диапазоне заданных температур окружающей среды. Выяснилось, что первый компонент, который выдает предупреждение о перегреве, — это блок питания.

Результаты ручного тестирования

В таблицах выше — результаты ручного тестирования для двух конфигураций: с общим объемом памяти 8 ТБ при температуре окружающей среды 27 °C и 1 ТБ при 35 °C соответственно. Мы видим, что блок питания выдает предупреждение о превышении температурного порога (50 °C) при одинаковых значениях тепловыделения (TDP) и количестве дисков в обеих конфигурациях. Это наблюдение позволяет предположить, что конфигурации взаимосвязаны.

На рисунке ниже — 3D-модель сервера. Блок питания (PSU1) расположен напротив процессора (CPU1) и принимает на себя основную массу горячего воздуха:

3D-модель сервера
Слева — 3D-модель части сервера и результаты компьютерного моделирования. По центру — распределение скорости потока воздуха. Справа — распределение температуры внутри сервера

А здесь показана зависимость температуры на блоке питания от TDP CPU1 для различных объемов модулей памяти. Видно, что у зависимости линейный характер:

Зависимость температуры на блоке питания от TDP CPU1

Как объясняется эта зависимость? Мы имеем дело с конвекционным нагревом, а именно с вынужденной конвекцией. Поведение системы можно описать законом охлаждения (или нагрева) Ньютона. Дифференциальное уравнение:

Дифференциальное уравнение

Решив это уравнение, мы видим, что температура экспоненциально зависит от времени и асимптотически выходит на некоторое значение — конечную температуру компонента. Посмотрите на график слева:

График зависимости температуры от времени
Можно сделать замену переменных 𝑞 = 1/(FAN Duty Cycle) и получить линейную зависимость температуры от скорости вращения вентиляторов

Если мы построим конечную температуру от мощности (график по центру), то увидим, что она линейна. При этом зависимость конечной температуры от скорости вращения вентиляторов окажется обратно пропорциональна этой скорости — график справа.

Качественный анализ можно подтвердить CFD-симуляциями. Ниже — результаты полномасштабного компьютерного моделирования. На нем показана зависимость температуры на блоках питания от мощности процессоров:

Результаты полномасштабного компьютерного моделирования
Первый график показывает мощность процессоров, второй и третий — как в зависимости от нее нагревается блок питания

Планирование эксперимента

Теперь обсудим, что из себя представляет метод планирования эксперимента (Design of Experiment, DOE).

Итак, у нас есть процесс — не важно, какой именно, от заварки чая до запуска ракеты в космос. На вход подаются факторы трех типов:

  • Контролируемые — во время эксперимента мы устанавливаем и изменяем их сами, чтобы отследить их влияние на результат. Это, например, температура, давление, потребляемая мощность и другие.
  • Неконтролируемые и ненаблюдаемые — это то, что нам практически невозможно отловить. Например, частицы из космоса или радиационный нагрев.
  • Неконтролируемые, но наблюдаемые. Например, это пассивные и активные элементы на материнской плате, у которых мы не можем менять мощность и внутреннюю температуру, при этом они тоже влияют на нагревание наблюдаемых объектов.

На выходе получаем отклик системы. Конечная цель — понять:

  • как входные параметры влияют на выходные;
  • как получить желаемые выходные параметры, в нашем случае это температура на компоненте.

Сбор данных — это долго и дорого, а планирование эксперимента позволяет получить максимум информации о системе за минимальное количество испытаний. Поэтому его и используют в индустрии.

Двухуровневый дизайн эксперимента

Можно показать математически, что в случае линейной модели достаточно взять две крайние точки для планирования эксперимента (график слева) и не рассматривать промежуточные значения (график справа). Такой двухуровневый дизайн снижает дисперсию и максимизирует детерминант матрицы информации (D-optimality).

Программа запуска испытаний

В тестовой среде для автоматических испытаний продуктов YADRO имплементировали утилиту optithermo на основе планирования эксперимента.

Программа выполняет такие действия:

  1. На вход система получает JSON-файл с набором крайних значений параметров и другую информация о DUT.
  2. Из полной комбинаторики значений параметров случайным образом выбирается только то количество параметров, которое указано в JSON-файле.
  3. Программа автоматически устанавливает значение параметров для каждого компонента.
  4. Запускаются стресс-утилиты: ptu, fio, gpu-burn.
  5. Данные выгружаются в InfluxDB для дальнейшей обработки.

В итоге длительность эксперимента занимает не месяцы, а 24 часа, это 48 прогонов. Постпроцессинг без учета выгрузки из базы данных занимает меньше минуты.

Как использовать температурную модель

Зависимость у нас везде линейная, поэтому модель тоже получается в виде системы линейных уравнений:

Система линейных уравнений температурной модели

Результаты, они же матрица коэффициентов, получились такими:

Матрица коэффициентов
Видно, что при температуре коэффициент равен единице, и это соответствует реальности

Важно, что на PSU1 коэффициент выше, чем на PSU0. Это говорит о том, что CPU1 влияет на PSU1 сильнее. Еще мы видим, что диски модуля RAM тоже нагревают систему где-то до 2 °C:

Матрица коэффициентов

В системе, которую я испытывал, одна из видеокарт стоит рядом с RAID-контроллером и нагревает его. Это видно и по таблице. То есть полученные коэффициенты действительно показывают влияние компонентов друг на друга, хотя они стоят параллельно в потоке воздуха.

Матрица коэффициентов

Ошибка предсказания при этом не превышает 1,5%. По сути это не более 1 °C.

Ошибка предсказания

Какие получились результаты

Благодаря проведенной работе я могу предсказать, какая температура должна быть в ЦОД, чтобы сервер при полной нагрузке не перегревался. Теперь соберем такую таблицу:

Значения на процессоре и компонентах

Я указал максимальное и минимальное значения на процессоре и других компонентах и оставил свободным слагаемое при внешней температуре.

Решив систему уравнений, я понимаю, какая минимальная температура может быть у нас в ЦОД. Например, если бы у нас нагружался только CPU0, мы могли бы спокойно работать при температуре до 48 °C. С видеокартами результат не такой оптимистичный: при максимальной нагрузке мы можем работать только до 8 °C.

Как искать оптимальные значения температуры для всех факторов

Модель представляет собой систему уравнений, которая решается относительно неизвестных факторов при фиксированных значениях максимальной температуры на компоненте. Дальше покажу, как найти оптимальные значения таких факторов, как, например, TDP или количество дисков в корзине.

Можно использовать метод наименьших квадратов:

Вот что получилось у меня:

Таблица оптимальных значений

Метод не всегда работает корректно. Некоторые значения нереалистичные — например, количество дисков получилось отрицательным. Чтобы его скорректировать, нужно зафиксировать некоторые из факторов. Я использовал TDP на разных компонентах и получил максимальное значение температуры в ЦОД:

Таблица оптимальных значений
Теперь результат реалистичный: на полной нагрузке платформа не может работать при температуре выше 24 °C.

Если видеокарты выключены

Теперь давайте возьмем конфигурацию, когда видеокарты выключены, то есть просто подключены к питанию и работают на минимальном TDP. Коэффициенты получатся примерно такими же, что и раньше:

Коэффициенты при выключенных видеокартах

Чтобы сравнить результаты, когда GPU просто подключены к питанию и когда у нас пустой райзер, убираем все видеокарты. Стоит упомянуть, что в таком случае воздушные потоки поменяются, а вместе с ними поменяются тепловые сопротивления компонентов. Теперь мы видим, что коэффициенты немного различаются:

Коэффициенты при пустом райзере

Давайте сравним ошибки:

Предсказание ошибок
На иллюстрации выше видно, что ошибки не превышают 5%. Можно сказать, что относительно перестановки компонентов модель гибкая. Это позволяет нам быть менее зависимыми от различных конфигураций сервера.

С базовой станцией тоже работает

Напоследок посмотрим, как обстоят дела с базовой станцией. Она представляет из себя корпус с модулями, и каждый модуль по сути — это небольшой сервер. Все они тоже греют друг друга.

Модули базовой станции
Как расположены модули внутри корпуса

Модуль делится на контрольной модуль (control board) и вычислительный модуль (BaseBand). Первый управляет всей BBU, кроме набора активных компонентов. Главное, что здесь нагревается, это процессор и DC-DC-блок.

На схеме: процессор и DC-DC-блок в базовой станции

Вычислительный модуль состоит из двух процессоров и RFSoC, которые занимаются обработкой СВЧ-сигнала:

Схема вычислительного модуля базовой станции

Поток воздуха направлен слева направо: сначала он нагревается на плате слева, а дальше поток попадает на плату справа. Компоненты в станции расположены близко друг к другу, поэтому нам особенно важно знать, какая температура будет на каждой из плат.

Дизайн эксперимента:

  • CPUs — 60 Вт и 110 Вт.
  • RFSoC — 10 Вт и 43 Вт.
  • Итого: 220 комбинаций.
  • Для предсказания температуры в самой горячей точке достаточно до 50 прогонов.

Матрица коэффициентов для самого горячего модуля будет такой:

Матрица коэффициентов для горячего модуля
Косвенные коэффициенты меньше собственного теплового параметра, но в сумме они дают прибавку к температуре примерно 10 °C. Получается, что с этой моделью я предсказал предельный TDP для процессоров и дальнейшее улучшение тепловых свойств радиатора.

С методикой, которую я описал, можно определить тепловые состояния сервера и понять, как его компоненты влияют друг на друга. Построенная модель позволяет предсказать максимальную рабочую температуру в ЦОД, а в случае, когда температуру окружающей среды нельзя опустить ниже заданного уровня, определить оптимальные значения мощностей компонентов. Всё это сокращает время испытаний с месяцев до суток.

Наверх
Будь первым, кто оставит комментарий