Частотное масштабирование ЦП засунуло 2,80 ГГц, и оно не понижается

Я использую Ubuntu 16.04 LTS с рабочим столом гнома. Я установил регулятор на "ondemand", но ЦП все еще работает на главной частоте.

Я попробовал много вещей, но это упорно продолжало 2,80 ГГц в течение многих часов. "scaling_max_freq" и "scaling_min_freq" дают то же самое: 2801000

1
задан 5 June 2016 в 20:54

1 ответ

Я решил свою проблему с этими шагами.

В K/X/Ubuntu или другой находящейся в Debian машине Вы могли бы просто попытаться установить cpufrequtils (sudo apt-get install cpufrequtils) получить работу частотного масштабирования. Если это делает для Вас затем, Вы не должны проходить части нахождения и загрузки корректных модулей ниже. Просто пропустите к разделу по конфигурированию масштабирующегося регулятора.

Версия ядра

Удостоверьтесь, что Ваша версия ядра - по крайней мере 2.6.12 для использования всех возможных регуляторов, которые будут упомянуты. Все частотное масштабирование будет сделано с модулями ядра и не регуляторами пространства пользователя.

Включите поддержку в своем BIOS

Введите свой BIOS и удостоверьтесь, Cool'n'Quiet (AMD) или SpeedStep (Intel) включают для Вас ЦП. Некоторый BIOS не может иметь опции для также. Если Вы не находите опцию, она, вероятно, включена по умолчанию. К сожалению, Ваш BIOS может иметь опцию, но это перечислено как другое имя в целом. Если это так, проверьте руководство своего BIOS для получения дополнительной информации.

Удалите любое пространство пользователя программы масштабирования ЦП

Существуют некоторые программы пространства пользователя, которые могут быть запущены для масштабирования частоты процессоров. Мы будем масштабировать ЦП с ядром, таким образом, нам не будут нужны они. Таким образом, если у Вас есть кто-либо, который мы идем, удаляют их теперь. Можно хотеть изучить их, поскольку они могут быть полезными в определенных ситуациях. Эта статья будет иметь дело только с использованием модулей ядра для масштабирования.

sudo apt-get remove powernowd cpudyn cpufreqd powersaved speedfreqd

Установите модуль для своего ЦП

То, когда Вы установили свою систему существует очень хороший шанс, Ваш ЦП был обнаружен по умолчанию и модуль, для которого Вы нуждаетесь для масштабирования, уже работает. Ниже команда, которая поможет Вам определить, какой процессор (процессоры) Вы имеете.

cat /proc/cpuinfo

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

lsmod

Ниже описания ЦП и команды, используемые для загрузки модулей ядра на основе того, какой процессор Вы имеете. Посмотрите на вывод от lsmod выше и используйте имена модулей после слова "modprobe" ниже, чтобы видеть, загрузили ли Вам уже модуль. Если Вы действительно затем просто идете дальше к следующему шагу. Если не затем используют информацию о ЦП, Вы нашли и фигура, какой модуль необходимо загрузить. Затем выполните команду для загрузки его.

ЦП: PIII-M или P4 без оценки. 2 типа модуля для этого.

sudo modprobe speedstep-ich

или

sudo modprobe speedstep-smi

ЦП: Intel Core Duo, Intel Core2 Duo или Четверка или Intel Pentium M. Это было объединено в acpi-cpufreq модуль в более поздних ядрах.

sudo modprobe speedstep-centrino

ЦП: Intel Celeron, Xeon и Pentium 4 процессора

sudo modprobe p4_clockmod

ЦП: AMD K6. Тип сокета: сокет 7

sudo modprobe powernow-k6

ЦП: AMD Sempron/Athlon/MP (K7). Типы сокета: A, Слот A.

sudo modprobe powernow-k7

ЦП: AMD Duron/Sempron/Athlon/Opteron 64 (K8). Типы сокета: 754, 939, 940, S1 (638), AM2 (940), F (1207).

sudo modprobe powernow-k8

ЦП: ЧЕРЕЗ CentaurHauls* или Transmeta GenuineTMx86*

sudo modprobe longhaul

Как последнее прибежище, если какой-либо из них не работает, можно попробовать универсальный за ACPI. Больше драйверов становится перемещенным в этот модуль в более поздних ядрах как speedstep-centrino после 2.6.20.

sudo modprobe acpi-cpufreq

Вставка масштабирующихся модулей

Теперь, когда модуль частоты ЦП загружается, мы можем теперь вставить масштабирующиеся модули. Видеть, какое масштабирование модулей у Вас есть доступное, можно использовать эту команду (использующий оболочку Bash).

ls /lib/modules/$(uname -r)/kernel/drivers/cpufreq

Если у Вас есть эти модули затем, они могут уже работать. Проверять, являются ли они попыткой следующая команда.

lsmod | grep freq

Если Вы видите больше всего или все модули что, где перечислено в cpufreq каталоге затем Ваш сделанный. Движение к следующему разделу. Если не вот команды для загрузки модулей.

sudo modprobe cpufreq_conservative cpufreq_ondemand cpufreq_powersave cpufreq_stats cpufreq_userspace freq_table

Теперь, когда они загружаются, Вы захотите загрузить их на начальной загрузке. Чтобы сделать это на Debian базировалось, система как K/X/Ubuntu поместила следующие строки в/etc/modules файл. Необходимо ли будет начать работу, куда поместить их на другие дистрибутивы как Redhat (/etc/modules.conf?). Не забудьте ставить имя модуля своего ЦП (Вы нашли выше) в здесь также, таким образом, это загружается на начальной загрузке. Это - то, только если это не загружается на начальной загрузке. Если Вы не нашли его с lsmod, когда Вы сначала смотрели затем, это не загружалось автоматически.

cpufreq_conservative
cpufreq_ondemand
cpufreq_powersave
cpufreq_stats
cpufreq_userspace
freq_table

Конфигурирование масштабирующихся модулей

Теперь, когда они загружаются, мы можем настроить регулятор. Сначала необходимо выбрать регулятор, который Вы хотите использовать. Ниже список регуляторы и как каждый работает. Можно решить, какой Вы соответствуете своим потребностям лучше всего. Если модуль для регулятора загружается затем, можно использовать его. Помните, что Вы видите, какие модули загружаются командой lsmod. Команды сделаны с sudo ниже подобного в K/X/Ubuntu мире. Можно переключиться на корень и выполнить те же команды только без sudo sh-c, "" если Вам нравится.

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

sudo cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors

Регулятор Ondemand - устанавливает частоту ЦП в зависимости от текущего использования. Чтобы сделать это, ЦП должен иметь возможность переключить частоту очень быстро. Это было бы хорошо для систем, которые делают большую работу (высокая загрузка) для короткие промежутки времени и затем не делают многого (низкая загрузка) остальная часть времени.

sudo sh -c "echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"

Параметры конфигурации регулятора Ondemand

sampling_rate - Это измеряется в микросекундах (миллионный из секунды). Это - то, как часто Вы хотите, чтобы ядро посмотрело на использование ЦП и приняло решения о том, что сделать о частоте. Обычно это установлено на значения приблизительно '10 000' или больше. Если бы Вы хотели установить частоту дискретизации на 1 секунду, то Вы установили бы ее на 1000000 как в следующем примере.

sudo sh -c "echo 1000000 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate"

show_sampling_rate _ (min|max) - Это - минимальные и максимальные частоты дискретизации, доступные, на который можно установить 'sampling_rate'. Я верю в микросекундах также. Я видел, что обсуждение избавления от этого в более поздних ядрах не рассчитывает на него находиться там в будущем. Видеть обоих просто сделать следующее.

sudo cat /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate_min  
sudo cat /sys/devices/system/cpu/cpu0/cpufreq/ondemand  /sampling_rate_max

up_threshold - Это определяет то, чем должно состоять в том среднее использование ЦП между выборками 'sampling_rate', чтобы ядро приняло решение на том, должно ли это увеличить частоту. Например, когда это установлено на свое значение по умолчанию '80', это означает, что между интервалами проверки ЦП должен быть в среднем на больше чем 80% используемым, чтобы затем решить, что частота ЦП должна быть увеличена. Для установки это на что-то понижается как 20%, Вы сделали бы следующее.

sudo sh -c "echo 20 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold"  

ignore_nice_load - Этот параметр принимает значение '0' или '1'. Когда установлено на '0' (его значение по умолчанию), все процессы считаются к значению 'загрузки ЦП'. Когда установлено на '1', процессы, которые выполняются с 'хорошим' значением, не рассчитают (и таким образом игнорироваться) в полном вычислении использования. Это полезно при выполнении ЦП интенсивное вычисление на ноутбуке, о котором Вы не заботитесь, сколько времени это берет для завершения, как Вы можете 'хороший' это и предотвращать его от принятия участия в процессе решения того, увеличить ли Вашу частоту ЦП. Для включения этого делают следующее.

sudo sh -c "echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/ignore_nice_load"  

Консервативный регулятор - частота ЦП масштабируется на основе текущей загрузки системы. Это подобно ondemand. Различие - то, что это корректно увеличивает и уменьшает скорость ЦП вместо того, чтобы перейти к максимальной скорости момент, там любая нагрузка на ЦП. Это лучше всего использовалось бы в среде c батарейным питанием.

sudo sh -c "echo conservative > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"  

Консервативные параметры конфигурации регулятора

freq_step - Это описывает, какими шагами процента частота ЦП должна быть увеличена и уменьшена гладко. По умолчанию частота ЦП увеличится в 5% блоков Вашей максимальной частоты ЦП. Можно изменить это значение на где угодно между 0 и 100, где '0' эффективно заблокирует ЦП на скорости независимо от ее загрузки, пока '100', в теории, заставит его вести себя тождественно "ondemand" регулятору. Например, чтобы иметь его ступают вверх и вниз в инкременты 10%, Вы сделали бы следующее.

sudo sh -c "echo 10 > /sys/devices/system/cpu/cpu1/cpufreq/conservative/freq_step"  

down_threshold - Это - то же как 'up_threshold', найденный для "ondemand" регулятора, но для противоположного направления. Например, когда установлено на его значение по умолчанию '20' это означает это, если использование ЦП должно быть ниже 20% между образцами, чтобы уменьшить частоту. Например, для установки вниз порог к 30% Вы сделали бы следующее.

sudo sh -c "echo 30 > /sys/devices/system/cpu/cpu0/cpufreq/conservative/down_threshold"

sampling_rate - то же как ondemand. sampling_rate _ (min|max) - то же как ondemand. up_threshold - то же как ondemand. ignore_nice_load - то же как ondemand.

Регулятор производительности - ЦП работает на макс. частоте независимо от загрузки. Этот модуль не мог бы быть перечислен в рабочих модулях, но все еще доступен. Мое предположение - это, встроен в ядро для K/X/Ubuntu. Ваш может быть тем же путем.

sudo sh -c "echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"

Регулятор Powersave - ЦП работает на минимальной частоте независимо от загрузки.

sudo sh -c "echo powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"

Статистика Cpufreq о Вашем ЦП

cpufreq статистика списков модулей о Вашем ЦП. Они помогут Вам узнать вещи как частота тока Вашего процессора или к каким доступным частотам Ваш ЦП может масштабироваться. Проверьте их ниже.

cpuinfo_cur_freq - Покажите частоту тока своего ЦП. Можно также узнать это путем выполнения "кошки/proc/cpuinfo".

sudo cat /sys/devices/system/cpu/*/cpufreq/cpuinfo_cur_freq

cpuinfo_max_freq - Покажите максимальную частоту, к которой может масштабироваться Ваш ЦП.

sudo cat /sys/devices/system/cpu/*/cpufreq/cpuinfo_max_freq

cpuinfo_min_freq - Покажите минимальную частоту, к которой может масштабироваться Ваш ЦП.

sudo cat /sys/devices/system/cpu/*/cpufreq/cpuinfo_min_freq

scaling_available_frequencies - Покажите все доступные частоты, к которым может масштабироваться Ваш ЦП.

sudo cat /sys/devices/system/cpu/*/cpufreq/scaling_available_frequencies

scaling_cur_freq - Покажите доступную частоту, к которой масштабируется Ваш ЦП в настоящее время.

sudo cat /sys/devices/system/cpu/*/cpufreq/scaling_cur_freq

scaling_driver - Покажите cpufreq драйвер, который использует ЦП.

sudo cat /sys/devices/system/cpu/*/cpufreq/scaling_driver

scaling_max_freq - Установите максимальную частоту, к которой Вашему ЦП позволяют масштабироваться. Посмотрите на вывод от scaling_available_frequencies выше. Затем можно выбрать одно из тех чисел (частоты) для установки, чтобы быть максимальной частотой, к которой ЦП позволят масштабироваться. Например, если бы Ваш вывод ЦП от scaling_available_frequencies был 2000000 1800000 1000000 затем, то Вы могли бы установить это на 1800000. Таким образом, когда масштабы ЦП это только перейдет к макс. из 1800000 а не 2000000. Пример о том, как установить это, был бы следующим.

sudo sh -c "echo 1800000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq"

scaling_min_freq - То же как scaling_max_freq, но устанавливание значения, которое не позволит ЦП понижаться. Например.

sudo sh -c "echo 1800000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq"

Хранение любой из настроек для cpufreq на перезагрузке

Так как все настройки, которые мы делали, находятся в/sys виртуальной файловой системе, они не будут сохранены после перезагрузки. Можно пойти об установке их на перезагрузке несколькими путями.

Первый путь состоит в том, чтобы поместить строки, которые Вы выполняли в/etc/rc.local. Так как корень выполняет rc.local на начальной загрузке, в которой Вы не нуждаетесь к sudo перед каждой строкой. Ваш rc.local мог быть похожим на следующий пример, который устанавливает ondemand регулятор и up_threshold к 20%. Не забывайте удостоверяться модуль для своего ЦП и cpufreq, который масштабирующиеся модули установлены загрузить на начальной загрузке также.

echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor  
echo 20 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold

Второй способ сохранить Ваши настройки на перезагрузке состоит в том, чтобы установить sysfsutils (sudo apt-get install sysfsutils). Затем Вы могли добавить следующие строки к/etc/sysfs.conf, которые делают то же самое как в /etc/rc.conf пример.

devices/system/cpu/cpu0/cpufreq/scaling_governor=ondemand   
devices/system/cpu/cpu0/cpufreq/ondemand/up_threshold=20
2
ответ дан 7 December 2019 в 13:44

Другие вопросы по тегам:

Похожие вопросы: