Вопрос или проблема
Предыстория:
Я использую Ubuntu 24.04.1 LTS (Noble Numbat, ядро 6.8.0-51-generic) на AMD Ryzen 9 7950X3D и исследую странное поведение, когда драйвер/губернатор процессора понижает частоту процессора при полной нагрузке.
С использованием губернатора performance
и драйвера amd-pstate
, вот что я наблюдаю:
Нагрузка | Средняя нагрузка за 15 мин | Температура процессора | Частота процессора | |
---|---|---|---|---|
Холостой | 1.12 | 40.8 C | 5,759,000,000 Гц | 5.76 ГГц |
Полная | 33.02 | 58.5 C | 4,827,047,000 Гц | 4.83 ГГц |
Я достаточно уверен, что 58.5C недостаточно горячо, чтобы вызвать тепловое ограничение на процессоре, но я хотел бы быть уверен, чтобы знать, как направить свое расследование:
- Если это тепловое ограничение, я приобрету лучшую систему охлаждения.
- Если это не тепловое ограничение, я продолжу исследовать параметры конфигурации.
Этот пост предполагает, что я должен увидеть информацию об ограничении в /sys/devices/system/cpu/cpu*/thermal_throttle/
, однако директория thermal_throttle
отсутствует:
/sys/devices/system/cpu/cpu0 $ file *
acpi_cppc: директория
cache: директория
cpufreq: символическая ссылка на ../cpufreq/policy0
cpuidle: директория
crash_notes: обычный файл, нет разрешения на чтение
crash_notes_size: обычный файл, нет разрешения на чтение
driver: символическая ссылка на ../../../../bus/cpu/drivers/processor
firmware_node: символическая ссылка на ../../../LNXSYSTM:00/LNXSYBUS:00/ACPI0010:00/ACPI0007:00
hotplug: директория
microcode: директория
node0: символическая ссылка на ../../node/node0
power: директория
subsystem: символическая ссылка на ../../../../bus/cpu
topology: директория
uevent: ASCII текст, с очень длинными строками (1212)
Вопрос:
Почему это отсутствует в sysfs и как я могу получить информацию об ограничении процессора?
Спасибо
Ответ или решение
Ваша проблема заключается в отсутствии информации о термическом ограничении CPU в файловой системе sysfs на устройстве, работающем на Ubuntu 24.04.1 LTS с ядром 6.8.0-51-generic и процессором AMD Ryzen 9 7950X3D. Вы наблюдали, что частота процессора снижается при полной нагрузке, и хотите определить, связано ли это с термическим ограничением или нет.
Теория:
В Linux информация о температуре и других параметрах процессора обычно доступна через sysfs. Стандартный путь для данных о термическом троттлинге — /sys/devices/system/cpu/cpu*/thermal_throttle/. Однако структура и содержимое sysfs зависят от драйверов и оборудования. В случае процессоров AMD может быть так, что поддержка конкретных функций (например, thermal_throttle) не реализована либо активирована в используемом ядре или драйвере.
Пример:
В вашем случае, несмотря на использование драйвера amd-pstate и губернатора performance, каталога thermal_throttle на вашем устройстве не существует. Это может указывать на несколько возможных причин, включая отсутствие поддержки этого функционала в текущем драйвере или неактивированное в ядре. Вы также отметили, что температура процессора составляет 58.5°C при полной нагрузке — значение, которое не должно вызывать троттлинг.
Применение:
-
Проверьте поддержку драйвера: Убедитесь, что драйвер amd-pstate поддерживает необходимый функционал. Возможно, обновления ядра или драйвера решат вашу проблему.
-
Обновление системы: Убедитесь, что все доступные обновления ядра и драйверов установлены. Разработчики могут добавить поддержку или новые возможности в обновлениях.
-
Альтернативные инструменты: Используйте другие утилиты для мониторинга состояния процессора, такие как
lm-sensors
илиthermald
. Эти программы могут предоставить альтернативную информацию о температуре и троттлинге. -
Журналы системы: Проверьте системные журналы на наличие сообщений о троттлинге процессора. Они могут содержать полезную информацию о причинах изменения частоты.
-
Консультация с сообществом: Обратитесь в сообщество пользователей Ubuntu или AMD для получения советов и рекомендаций. Возможно, кто-то уже сталкивался с аналогичной проблемой и нашел решение.
Подходя к диагностике системно, можно определить истинную причину изменения частоты процессора при полной нагрузке и принимать обоснованные решения по улучшению производительности системы.