Как я могу отследить возникающую проблему с производительностью
У меня есть два похожих ноутбука, оба серии ThinkPad P. Опишу их характеристики:
Новый ноутбук:
- Intel(R) Core(TM) i7-12850HX (16 ядер, 24 потока)
- 128 ГБ DDR5, твердотельный накопитель емкостью 4 ТБ (2x2 ТБ)
- Убунту 22.04.3 ЛТС
Старый ноутбук:
- Intel(R) Core(TM) i7-11800H (8 ядер, 16 потоков)
- 64 ГБ DDR4, твердотельный накопитель емкостью 3 ТБ (1x1 ТБ + 1x2 ТБ)
- Убунту 20.04.6
По всем характеристикам новый ноутбук должен быть значительно быстрее, и это то, что показывает большинство тестов (sysbench показывает увеличение процессора на ~40% в новом ноутбуке, время компиляции gcc составляет ~900 секунд против ~1300, дисковый ввод-вывод находится в пределах нескольких сто кбит/с при тесте более 150 ГБ, хотя технически старый вариант был быстрее).
Исключением, которое меня действительно убивает, является создание проектов petalinux (yocto/bitbake). Начиная с одних и тех же проектов, время сборки составляет (новый – старый): 40–10 минут, 60–20 минут для двух разных проектов, над которыми я часто работаю. Я не уверен, что вызывает это замедление, и я попробовал несколько вещей:
Процессы мониторинга показывают, что в обеих системах все процессоры закреплены на протяжении большей части сборки. Я пробовал ограничивать потоки, чтобы «ядра эффективности» не вступали в игру в случае, если они каким-то образом вызывают проблемы, но это только замедлило процесс. Новая машина также, похоже, не расходует ресурсы существенно по-другому (что касается использования ядра и пользователей, показанного на рис.htop). Также пробовал ответы здесь , но безуспешно. Я просмотрел выводperfна новой машине, но, не зная больше, что я ищу, это не помогло, поэтому я не запускал его на старой машине для сравнения, это в списке.
Некоторые основные вещи, которые мне могли бы пригодиться, чтобы объяснить/посоветовать, как тестировать: Я заметил, что новая машина никогда не выходит за рамки 3,2 ГГц, как сообщает/proc/cpuinfo(при условии, что это правда), в то время как старая машина, похоже, большую часть времени тратит около 3,8-4 на всех ядрах во время сборки. Меня это очень сбивает с толку, глядя на характеристики процессора. Я также заметил, что вентиляторы на новом ноутбуке кажутся невероятно агрессивными по сравнению со старым. Интересно, сильно ли меня душат? Температуры, о которых сообщают оба, кажутся немного бесполезными; Температура отдельных ядер варьируется примерно на 25°C на обеих машинах, при этом некоторые ядра достигают «критической» температуры в 100°C, а другие колеблются в пределах 80°C. Общая температура процессора была более стабильной, но одинаково высокой на обеих машинах.
Мне нужно изучить это подробнее, но первый ответ, который я увидел в отношении определения этого, заключался в проверке.CPU MHzценить. Очевидно, я не получаю заявленную максимальную скорость, но не знаю, с чего начать выяснять, почему.
После написания и прочтения всего этого я начинаю подозревать, что мои ядра производительности ограничиваются, как если бы они были ядрами эффективности.
Обновление 1:
После просмотра этого ответа я проверилscaling_governorдля моего первого процессора и заметил, что он находится в режиме энергосбережения, несмотря на то, что настройки графического интерфейса находятся в режиме производительности. Я настроил их все на производительность и был рад видеть, что мои ядра производительности подскочили до 4+ ГГц и завершили часть процесса сборки быстрее, чем раньше. К сожалению, с тех пор он вернулся в основном к 3.3-3.8, и сборка снова занимает гораздо больше времени.