Вопрос или проблема
я сравнил потребление энергии и частоты yocto и ubuntu.
Привет,
у меня есть два идентичных ПК на базе i7-13800HE. Один работает под управлением ubuntu 24.04, а другой — yocto.
Во время проведения стресс-тестов я заметил, что ПК с ubuntu потребляет больше энергии, ~5А@24V, чем ПК с yocto, ~3,5А@24V. После этого я записал частоты процессора обоих и обнаружил, что ubuntu работает на более высоких частотах, чем yocto.
После этого я изменил ubuntu, добавив параметр ядра init=/bin/bash, чтобы запустить его в консоли и убедиться, что я не пропустил ни одного модуля ядра в yocto.
Запуск стресс-теста из консоли имеет то же поведение, что и из yocto. Но даже когда я устанавливаю целевой режим ubuntu на rescue, systenctl set-default rescue.target, я вижу более высокие частоты.
Следующее, что я попробовал сделать, это уменьшить цель rescue и обнаружил, что более высокие частоты можно достичь после запуска systemd-udev, но копирование всех правил на yocto не увенчалось успехом.
Мой вопрос: что делает ubuntu, чтобы увеличить частоты?
С наилучшими пожеланиями, Майкл
Ответ или решение
Здравствуйте, Михаил,
Вы подняли интересный вопрос о различии в частотах процессора и потреблении энергии между системами на базе Yocto и Ubuntu, особенно на фоне выполнения стресс-тестов. Давайте разберемся в причинах этих различий и как они могут быть объяснены.
Теория
Процессор Intel i7-13800HE, как и многие современные процессоры, имеет ряд встроенных механизмов для регулирования частоты и энергопотребления. Это включает в себя такие технологии, как Intel Turbo Boost, который автоматически увеличивает частоты процессора в зависимости от нагрузки и тепловых условий, и Enhanced SpeedStep Technology, которая регулирует частоту и напряжение автоматически, в зависимости от текущих задач.
Ubuntu и Yocto — это две разных операционные системы, которые могут по-разному взаимодействовать с этими механизмами. Ubuntu, как полноценная настольная дистрибуция, изначально настроена для максимальной производительности на множестве конфигураций, в то время как Yocto — это более минималистичная система, часто используемая в встроенных решениях.
Пример
Вы уже отметили, что при выполнении стресс-тестов на Ubuntu частота процессора повышается более активно, чем на Yocto. Это может быть связано с тем, что Ubuntu, имея более широкую поддержку и большую базу драйверов, может полностью использовать архитектурные особенности процессора для повышения производительности. Управление энергопотреблением и частотой в Ubuntu производится более агрессивно благодаря передовому управлению питанием и интеграции с системой udev, которая управляет устройствами в системе.
Когда вы переводили Ubuntu в режим rescue и наблюдали поведение частот, это указывает на тот факт, что система, даже в минимальном режиме, продолжает использовать встроенные модули и драйверы, которые могут включать дополнительные профили энергопотребления, чего в Yocto может не быть в базовой конфигурации.
Применение
Во-первых, вам следует убедиться, что в Yocto корректно настроены все модули и драйверы, отвечающие за управление питанием и поддерживают все функции процессора. Это может потребовать ручного добавления или компиляции определённых модулей ядра.
Во-вторых, вы можете рассмотреть возможность настройки профилей энергосбережения и управления питанием в Yocto. Попробуйте исследовать, насколько ваш образ Yocto поддерживает такие технологии, как cpufreq и ACPI (Advanced Configuration and Power Interface), и убедитесь, что все драйверы, которые могут взаимодействовать с архитектурными особенностями Intel, активированы.
В-третьих, прошу вас проверить управление услугами и демонами, которые работают в вашей среде. Даже если Ubuntu работает в минимальном режиме, это не означает, что Yocto использует те же сервисы и демоны. Убедитесь, что соответствующие сервисы, которые могут влиять на производительность CPU, активированы и сконфигурированы.
Например, cpupower — утилита для управления профилями CPU, может использоваться для выставления частотных и напряженческих характеристик. Попробуйте установить и настроить её для Yocto, чтобы обеспечить аналогичное поведение на уровне системы.
Подведём итог. Дефолтные системы Ubuntu и Yocto могут значительно отличаться в плане настройки производительности и энергопотребления. Вы можете начать с обновления и подключения всех доступных драйверов процессора и энергопотребления в Yocto, чтобы соответствовать обертке Ubuntu, используемой при стресс-тестах. Это должно помочь достичь более сопоставимых результатов.
С уважением,
Ваш ИТ-эксперт