Частота процессора всегда на минимуме, даже если загрузка процессора составляет 100%


15

Я не знаю, когда эта проблема начала возникать, возможно, это было со времени, когда я установил Ubuntu (16.04, свежий). Я наблюдал, что Ubuntu был необычайно медленным, среда была нестабильной, и загрузка процессора была высокой даже во время простоя, сначала я думал, что какая-то программа замедляет его.

Спустя какое-то время я разобрался, чем это вызвано, частота процессора установлена ​​на 800 МГц, безостановочно, независимо от обстоятельств. Максимальная частота должна составлять 3100 МГц с турбонаддувом и обычно 2000 МГц. Я намеренно установил использование ЦП (из всех 4 потоков на 2 ядрах) на 100%, поскольку Blender рендерит некоторые вещи на ЦП, он все еще остается на частоте 800 МГц.

Я попытался установить профиль максимальной производительности, но он все еще остается низким. Я проверял температуру, кажется, что она все время составляет 60 ° C, когда 87 ° C считается высокой и 105 ° C критической. Я постоянно работаю от сети переменного тока, батарея не заряжается с некоторого времени назад.

Вот что сообщает cpufreq-info:

 driver: intel_pstate
 CPUs which run at the same hardware frequency: 0
 CPUs which need to have their frequency coordinated by software: 0
 maximum transition latency: 0.97 ms.
 hardware limits: 800 MHz - 3.10 GHz
 available cpufreq governors: performance, powersave
 current policy: frequency should be within 2.00 GHz and 3.10 GHz.
                 The governor "performance" may decide which speed to use
                 within this range
 current CPU frequency is 800 MHz (asserted by call to hardware).

То же самое для других 3 процессорных блоков.

Вот что сообщает lscpu:

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    2
Core(s) per socket:    2
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 58
Model name:            Intel(R) Core(TM) i7-3537U CPU @ 2.00GHz
Stepping:              9
CPU MHz:               799.921
CPU max MHz:           3100,0000
CPU min MHz:           800,0000
BogoMIPS:              3990.99
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              4096K
NUMA node0 CPU(s):     0-3
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm epb tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm ida arat pln pts

В режиме энергосбережения он ведет себя идентично. Если я отсоединяю источник переменного тока и работаю от батареи, частота процессора возрастает до 2800 МГц, поэтому кажется, что это проблема только с питанием переменного тока (что совершенно противоположно тому, что он должен делать).

Я попытался установить изменение профилей ЦП, я попытался отключить масштабирование частоты ( Как я могу отключить масштабирование частоты ЦП и настроить производительность системы? ), Я попытался установить scaling_min_freq в / sys / devices / system / cpu / cpu [0-3] / cpufreq к более высокому значению, но ни один из них ничего не сделал. Частота остается минимальной.

Тип процессора - Intel (R) Core (TM) i7-3537U CPU @ 2,00 ГГц, компьютер - Dell Inspiron 15z Touch.

У меня также проблема с аккумулятором, который не заряжается, даже если компьютер питается от адаптера переменного тока.

Больше диагностики:

$ sudo rdmsr --bitfield 15:8 -d -a 0x198
8
8
8
8
$ sudo rdmsr --bitfield 15:8 -d -a 0x199
9
8
9
9

В случае 0x199 числа 8 и 9 оказываются случайным образом переставленными между последовательными вызовами.


В последнее время было несколько подобных отчетов, и часто для CPU Model 58. Хммм ... Какой марки ваш компьютер? Посмотрите на это , где что-то внешнее по отношению к драйверу частоты процессора intel_pstate удерживает частоту низкой. Подчеркивая ваш : CPU при 100% нагрузке, не могли бы вы посмотреть на sudo rdmsr --bitfield 15:8 -d -a 0x198и sudo rdmsr --bitfield 15:8 -d -a 0x199добавить вывод на ваш вопрос. Примечание rdmsrпредоставляется пакетом msr-toolsи требует, чтобы модуль msr был загружен первым через sudo modprobe msr.
Дуг Смитис

Пожалуйста, используйте регулятор powersave для теста.
Дуг Смитис

Я добавил запрошенную информацию в первоначальный пост. Короче говоря, мой компьютер - Dell Inspiron 15z Touch, он, похоже, является экземпляром Bug 118751 (потому что проблема исчезает при работе от батареи). Использование регулятора powersave ничего не меняет.
Дуги

Я заметил, что, как и в случае с Marcin Nowak в дискуссии об этой ошибке, моя батарея заряжается не совсем или очень медленно (даже если компьютер выключен). Однако мощность переменного тока не кажется слабой.
Дуги

Вы хотите продолжить через отчет об ошибке? Что-то внешнее по отношению к драйверу частоты процессора intel_pstate удерживает частоты процессора на самом низком уровне. Если вы загрузитесь, используя драйвер частоты процессора acpi_cpufreq, что вы получите cat /sys/devices/system/cpu/cpufreq/policy0/bios_limit?
Дуг Смитис

Ответы:


12

Оказалось, что эта проблема не связана с драйвером intel_pstate, поскольку acpi_cpufreq, другой драйвер, сообщает о лучших значениях, но никогда не устанавливает их. ОС, вероятно, не контролировала это.

Это проблема, которая возникает с некоторыми ноутбуками Dell, когда зарядка прерывается из-за того, что ноутбук работает от сети переменного тока, но не заряжается. Устранение проблемы с оборудованием устраняет проблему. В данном случае это был почти невидимый кусок ткани в разъеме питания, который препятствовал электрическому контакту.


1
Но что делать, если сейчас я не могу заменить аппаратное обеспечение (зарядное устройство)?
Ведаврат

Я бы проверил разъем, есть вероятность, что с ним что-то не так, и это можно исправить вручную. Если нет, вам, вероятно, придется столкнуться с (не фатальными) проблемами с медленным процессором. Это аппаратная проблема, не связанная с ОС или драйверами.
Дуги

Мой Dell Inspiton 15R N5110 Intel i7-2860QM был с умирающим аккумулятором до того момента, когда он перестал заряжаться, оставив мне частоту 800 МГц. Я открыл BIOS и отключил Charger Behaviorи Adapter Warnings. Вытащил тесто и обратно. Кроме того, в Windows, но положить в высокопроизводительный профиль. И вернул мой процессор и получил 2500 МГц. Так что можно решить проблему без замены.
dzmitry.lahoda

1
Чтобы уточнить, ваша батарея не заряжалась? Итак, если у меня та же проблема, что и у OP, но батарея заряжается нормально (ноутбук работает от батареи много часов), то у меня другая проблема?
Гаррет

1
@Garrett Аккумулятор не заряжался. Если тесто заряжается, то проблема не в этом. Проблема заключалась в том, что BIOS попал в неожиданную ситуацию, когда ноутбук работал от сети переменного тока, но батарея не заряжалась.
Дуги

3

Это установит максимальную скорость вашего процессора с любого терминала:

sudo cpufreq-set -f `cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq`

Отредактируйте файл /etc/init.d/ondemand, чтобы добавить его навсегда. ondemand используется для изменения вашего freq во время входа в систему. По умолчанию используется регулятор «ondemand». Другими словами, вы начинаете с 800 МГц и повышаетесь по мере необходимости.


2
Помогает. Спасибо! Но тогда мы просто изменим частоту ЦП с минимальной (800 МГц) на максимальную (3200 МГц), и как настроить частоту ЦП в диапазоне от 0,8 до 3,2 ГГц в зависимости от нагрузки, пожалуйста? Спасибо.
Ведаврат

2

У меня возникла та же проблема - процессор зависал в ubuntu и windows после перегрева в переносной сумке, когда ноутбук все еще был включен.

Я перешел на BIOS, отключил управление питанием процессора в режиме «power» и перевел все остальное на полную мощность (максимальная производительность). Перезагрузился, вернулся на полную скорость, затем вернулся в BIOS, снова включил управление процессором и исправил другие настройки, которые я изменил ранее. И вуаля!

РЕДАКТИРОВАТЬ: Оказывается, это проблема батареи. Если батарея действительно разряжена, процессор не будет ускоряться (я полагаю, для экономии энергии). На моем ThinkPad необходимо зарядить аккумулятор в течение нескольких минут, пока индикатор зарядки не перестанет быстро мигать, ДО того, как я снова включу машину.


Я сделал то же самое на своем XPS 15, хотя я никогда не включал управление питанием. С тех пор он работает быстро и постоянно. (Батарея теперь немного затронута, но это не слишком важно для меня)
pandaadb

2

Иногда мой ноутбук полностью игнорирует настройки cpufreq. Я нашел это работает:

Отключите шнур питания и подключите его снова. Исправлена ​​:)

Я предполагаю, что причина в том, что машина запуталась: она думает, что она работает от батареи, и она думает, что батарея разряжена, поэтому она разгоняет процессор для экономии энергии.

Нам просто нужно дать ему понять, что он действительно подключен и работает нормально.

(Ноутбук Asus x453m, Ubuntu 14.04) YouTube: Вы пытались выключить и снова включить его?


Вау, да, это сработало для меня!
Тим

0

У меня была та же проблема с моим ThinkPad T520. Перепробовав все решения, найденные в интернете, я был готов переустановить Ubuntu. Но потом я проверил частоту процессора в Windows и обнаружил, что она тоже ограничена 800 МГц.

Так это выглядело как аппаратная проблема. Было неочевидно, что существуют проблемы с охлаждением процессора, потому что число оборотов в минуту было ниже, а корпус ноутбука не был горячим или даже теплым.

Так как других вариантов в любом случае не было, я разобрал ноутбук и изменил термический интерфейс в чипах CPU и GPU. И знаешь, что? Это помогло!

Юнит-тесты одного из моих проектов Django были 45 минут, сейчас 11 минут.

Так что, если вы столкнетесь с подобной проблемой, особенно на ноутбуке - возможно, это из-за того, что термический интерфейс высушен - через 3-5 лет он часто перестает работать. И не обманывайте себя чистым радиатором, бесшумным кулером и классным корпусом ноутбука.


0

Обходной путь решения

# Determinate CPU capabilities
MAX_CPU=$(cpupower frequency-info -l | tail -n1 | cut -d' ' -f2)

# Disable "BD PROCHOT" 
wrmsr -a 0x1FC 262238;

# Set and apply frequencies
cpupower frequency-set \
  -d $(expr $MAX_CPU / 2) \
  -u $MAX_CPU \
  -r \
  -g performance; 

0

Иногда дело не только в настройке регулятора масштабирования. Политики масштабирования иногда устанавливаются между MIN_FREQ и MIN_FREQ. Я должен был написать скрипт, чтобы все исправить сразу:

#!/bin/bash
echo "Setting all CPUs to " "$@"
CPUINFO_MIN_FREQ=$(cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq)
CPUINFO_MAX_FREQ=$(cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq)
MIN=$(echo "scale=1; $CPUINFO_MIN_FREQ / 1000000" | bc)"G"
MAX=$(echo "scale=1; $CPUINFO_MAX_FREQ / 1000000" | bc)"G"

echo "Minimum frequency: " $MIN ", Maximum frequency: " $MAX

GOVERNOR=@0
if [ $# -eq 0 ]
    then
        echo "No arguments supplied, using ONDEMAND governor"
        GOVERNOR="ondemand"
    else
        echo "Governor " $1 " supplied"
        GOVERNOR=$1
fi

for ((i=0;i<$(nproc);i++));
    do cpufreq-set -c $i -r -g $GOVERNOR  --min $MIN --max $MAX;
done
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.