Ubuntu и определение скорости процессора

12

У меня есть старый ноутбук, который я использую в качестве медиацентра на своем телевизоре, и я обычно устанавливаю / переустанавливаю / удаляю разные ОС и приложения, чтобы он работал как можно более плавно.

Одна вещь, которую я заметил, была очень странной. Мой ноутбук - HP Pavilion G62 с трехъядерным процессором AMD, работающим на частоте 1800 МГц. Когда я запускаю XBMC из Windows 7 и смотрю на скорости процессора, он ясно говорит о 1800 МГц. Тем не менее, когда я запускаю его из Ubuntu либо из модуля запуска, либо из сеанса, он говорит, что процессор работает только на 800 МГц.

Я хотел исследовать дальше, поэтому я загрузил DXDIAG в Windows, чтобы увидеть скорость. Конечно же, это указывает на то, что это 1800 МГц. Однако при запуске HardInfo в Ubuntu он говорит мне, что скорость каждого ядра следующая: 1500 МГц, 1500 МГц и 800 МГц.

Означает ли это, что заявленная частота процессора и скорость, обнаруженная Windows, лежат или округлены? Или проблема в том, что Ubuntu определяет скорость моего процессора, и моя система работает не так оптимально, как должна? Я был бы склонен сказать последнее ... главным образом потому, что кажется, что Windows работает намного более гладко, чем Ubuntu.

Scotty_80
источник
4
Пожалуйста, оставьте вывод cpufreq-info. Возможно, вам придется установить его sudo apt-get install cpufrequtilsсначала.
Тердон
2
«Когда я запускаю его из Ubuntu либо из модуля запуска, либо из сеанса, он говорит, что процессор только 800 МГц». не могли бы вы сделать снимок экрана?
Брайам

Ответы:

11

По умолчанию Ubuntu использует регулятор частоты по умолчанию . Чтобы проверить / переключить регуляторы, установите cpufrequtilsпакет следующим образом:

sudo apt-get install cpufrequtils

Чтобы проверить текущую скорость / регуляторы каждого ядра, выполните:

cpufreq-info

Вы можете установить все ядра на производительность , как это:

sudo cpufreq-set -r -g performance

Вы можете подтвердить, что все ядра теперь работают на максимальной частоте, вот так:

grep MHz /proc/cpuinfo

Примечание : это изменение временно. Как только вы перезагрузите компьютер, он снова будет доступен по требованию .

Сильвен Пино
источник
1
Спасибо за информацию! Я запускал команды, которые вы перечислили, и он поднял первое ядро ​​процессора до 1800 МГц, но остальные были на частоте 800 МГц. Это, согласно очень подробному ответу Сергея ниже, скорее всего нормально для моей системы.
Scotty_80
Отредактировал ответ, включив в него параметр -c, который сообщает, какая частота процессора должна быть установлена. Я не смог найти способ указать все номера процессоров одновременно. Я также пытаюсь написать сценарий для включения режима производительности при питании от сети переменного тока и в режиме по требованию при питании от батареи. Если у кого-то уже есть решение для этого, пожалуйста, добавьте сюда. Благодарю.
Шри
1
Чтобы установить производительность всех процессоров за один раз, сначала перейдите в режим суперпользователя с помощью sudo su, а затем используйте это: for ((i = 0; i <$ (nproc); i ++)); выполнить cpufreq-set -c $ i -r -g performance; сделано
Шри
10

Теоретическое обоснование: в типичном компьютере процессор простаивает большую часть времени. Для экономии энергии современные процессоры реализуют масштабирование частоты - то есть операционная система может указать процессору переключаться на более низкую частоту при низкой нагрузке. Технология называется SpeedStep в процессорах Intel и Cool'n'Quiet в процессорах AMD.

В ядре Linux масштабирование частоты осуществляется cpufreqинфраструктурой, которая использует концепцию «регуляторов» для управления частотой.

Регулятор по умолчанию - «ondemand», который увеличивает частоту, когда загрузка процессора поднимается выше 95%. Это позволяет процессору экономить электроэнергию во время простоя и переключаться на полную производительность, когда есть чем заняться. Существует некоторая задержка перехода, измеряемая в миллисекундах, поэтому, когда незанятый процессор внезапно получает большую нагрузку, он продолжает пускаться на низкой частоте в течение нескольких миллисекунд перед переключением на полную мощность, поэтому в определенных ситуациях это может привести к несколько меньшей производительности, чем когда всегда работает на полной скорости.

Существуют и другие регуляторы , в том числе регулятор «производительности», который всегда запускает процессор на полной частоте. Это устраняет задержку переключения, но может увеличить потребление энергии.

Вы можете экспериментировать с разными губернаторами, как это предлагается в другом ответе, но я сомневаюсь, что это даст впечатляющие результаты. Они не сделали бы это по умолчанию, если бы это не имело смысла в 99% случаев :)

Вернемся к вашему вопросу: скорее всего, Windows показывает вам максимально возможную частоту ЦП (ту, которую они рекламируют на коробке ЦП), в то время как Ubuntu показывает вам фактическую частоту, с которой работает каждое из ядер ЦП в данный конкретный момент. Это не значит, что процессор работает медленнее в Ubuntu. Если кажется, что Ubuntu работает медленно на вашем ноутбуке, это, скорее всего, вызвано чем-то другим - например, низким объемом оперативной памяти, медленным жестким диском и т. Д. Современный Ubuntu, безусловно, требует больше ресурсов, чем, скажем, Windows XP, которую вы, вероятно, найдете на старый ноутбук.

Более техническое чтение:

Сергей
источник
Это определенно объясняет это! Однако, если бы я установил регулятор на производительность, не должны ли все мои ядра процессора работать на частоте 1800 МГц? В настоящее время, когда я изменяю настройку, он устанавливает CPU1 только на 1800 МГц. Другие 2 только на 800 МГц. Я полагаю, это можно просто записать как ограничение процессора ...
Scotty_80