Ubuntu и определение скорости процессора
У меня есть старый ноутбук, который я использую в качестве медиацентра на своем телевизоре, и я обычно устанавливаю / переустанавливаю / удаляю разные ОС и приложения, чтобы он работал как можно более плавно.
Одна вещь, которую я заметил, была очень странной. Мой ноутбук - HP Pavilion G62 с трехъядерным процессором AMD, работающим на частоте 1800 МГц. Когда я запускаю XBMC из Windows 7 и смотрю на скорости процессора, он ясно говорит о 1800 МГц. Тем не менее, когда я запускаю его из Ubuntu, либо из модуля запуска, либо из сеанса, он говорит, что процессор только 800 МГц.
Я хотел исследовать дальше, поэтому я загрузил DXDIAG в Windows, чтобы увидеть скорость. Конечно же, это указывает на то, что это 1800 МГц. Однако при запуске HardInfo в Ubuntu он сообщает, что скорость каждого ядра следующая: 1500 МГц, 1500 МГц и 800 МГц.
Означает ли это, что заявленная частота процессора и скорость, обнаруженная Windows, лежат или округлены? Или проблема в том, что Ubuntu определяет частоту моего процессора, и моя система работает не так оптимально, как должна? Я был бы склонен сказать последнее... главным образом потому, что кажется, что Windows работает намного более гладко, чем Ubuntu.
2 ответа
По умолчанию Ubuntu использует регулятор частоты по умолчанию. Для проверки / переключения регуляторов установите cpufrequtils
пакет, как это:
sudo apt-get install cpufrequtils
Чтобы проверить текущую скорость / регуляторы каждого ядра, выполните:
cpufreq-info
Вы можете настроить производительность всех ядер следующим образом:
sudo cpufreq-set -r -g performance
Вы можете подтвердить, что все ядра работают с максимальной частотой, вот так:
grep MHz /proc/cpuinfo
Примечание: это изменение временно. Как только вы перезагрузите компьютер, он снова будет доступен по требованию.
Теоретическое обоснование: в типичном компьютере процессор простаивает большую часть времени. Для экономии энергии современные процессоры реализуют масштабирование частоты - то есть операционная система может указать процессору переключаться на более низкую частоту при низкой нагрузке. Технология называется SpeedStep в процессорах Intel и Cool'n'Quiet в процессорах AMD.
В ядре Linux масштабирование частоты осуществляется cpufreq
инфраструктура, в которой используется понятие "регуляторы" для контроля частоты.
Регулятор по умолчанию - "ondemand", который увеличивает частоту, когда загрузка процессора поднимается выше 95%. Это позволяет процессору экономить электроэнергию во время простоя и переключаться на полную производительность, когда есть чем заняться. Существует некоторая задержка перехода, измеряемая в миллисекундах, поэтому, когда простаивающий процессор внезапно получает большую нагрузку, он продолжает пускаться на низкой частоте в течение нескольких миллисекунд перед переключением на полную мощность, поэтому в определенных ситуациях это может привести к несколько меньшей производительности, чем когда всегда работает на полной скорости.
Существуют и другие регуляторы, в том числе регулятор "производительности", который всегда запускает процессор на полной частоте. Это устраняет задержку переключения, но может увеличить потребление энергии.
Вы можете поэкспериментировать с разными губернаторами, как это предлагается в другом ответе, но я сомневаюсь, что это даст впечатляющие результаты. Они не сделали бы это по умолчанию, если бы это не имело смысла в 99% случаев:)
Вернемся к вашему вопросу: скорее всего, Windows показывает вам максимально возможную частоту ЦП (ту, которую они рекламируют на коробке ЦП), в то время как Ubuntu показывает вам фактическую частоту, с которой работает каждое из ядер ЦП в данный конкретный момент. Это не значит, что процессор работает медленнее в Ubuntu. Если кажется, что Ubuntu работает медленно на вашем ноутбуке, это, скорее всего, вызвано чем-то другим - например, низким объемом оперативной памяти, медленным жестким диском и т. Д. Современный Ubuntu, безусловно, требует больше ресурсов, чем, скажем, Windows XP, которую вы, вероятно, найдете на старый ноутбук.
Более техническое чтение: