Я использую Ubuntu MATE 16.04.3 LTS на Thinkpad T430 (двухъядерный процессор Core i7, номинальная тактовая частота 2,9 ГГц, 8 ГБ ОЗУ, внутренняя батарея на 9 ячеек и батарея Slice на 9 ячеек). У меня отличное время автономной работы - до 10 часов нормальной работы при полном заряде.
Недавно у меня были проблемы с производительностью при игре в игру (космическая программа Kerbal) с питанием от сети переменного тока, и я обнаружил, что компьютер остался в режиме энергосбережения, из-за чего процессор работал на более низкой тактовой частоте, чем необходимо, когда я не пытаясь агрессивно экономить энергию. Это, вероятно, произошло до того, как я приобрел расширенные батареи, когда я пытался агрессивно увеличить срок службы батареи с помощью оригинальной 6-элементной батареи.
Я могу легко переключить ЦП обратно в режим «Производительность» с помощью виджета «Монитор масштабирования частоты ЦП», который я смонтировал на системной панели (который, по-видимому, отдельно управляет синхронизацией для двух реальных и двух виртуальных ядер) - но я Я изучил окно Power системных настроек и не вижу способа заставить ОС автоматически переключаться между режимами энергосбережения (что мне нужно, когда питание от батареи) и производительностью (что я предпочел бы, когда питание от сети) .
Я надеюсь, что мне просто не хватает чего-то очевидного; Я довольно новичок в 16.04 и в MATE, только что получил эту машину (и очистил установленную Ubuntu, неохотно сохраняя Windows 10 на двойной загрузке) пару месяцев назад.
Поиск похожих вопросов обнаружил этот , который кажется похожим, но относится к Ubuntu 14.10, теперь EOL, и может, а может и не быть правильным для моего точного оборудования, хотя я не уверен как узнать, есть ли у меня процессор Sandy Bridge).
Я провел некоторое исследование. Его результаты ниже.
Я использую Ivy Bridge i7-3537U на ПОМОЩНИКЕ с тем же виджетом. Мой другой ЦП является Haswell i7-4790. Согласно sysfs у них есть только два регулятора
$ cat /sys/devices/system/cpu/cpufreq/policy0/scaling_available_governors
performance powersave
Это использует новый intel_pstate драйвер.
Более старым ЦП, таким как мой Clarksfield i7-740QM управляют acpi-cpufreq
драйвер, это имеет 5 регуляторов (conservative ondemand userspace powersave performance
).
Формирователь тока может быть проверен cpufreq-info -d
(от cpufrequtils
пакет).
Можно проверить ЦП с lscpu
. Я думаю, что можно контролировать ЦП фактические частоты с i7z
или i7z_GUI
(устанавливаемый с sudo apt-get install i7z i7z-gui
) или powertop
(sudo apt-get install powertop
, посмотрите вкладку статистики Частоты).
На другом потоке объяснено, как выключить intel_pstate
драйвер. Я попробовал так своими центральными процессорами Haswell и Ivy Bridge, но я получаю очень близкие результаты в тесте LINPACK Intel.
Я могу завершить следующее:
intel_pstate
регулятор powersave эквивалентен старому acpi-cpufreq
ondemand один;1- создайте файл /opt/system_cupmode.sh с помощью sudo
2- запустите следующую команду, чтобы дать ему необходимые разрешения
sudo chmod +x /opt/system_cupmode.sh
3- откройте файл и добавьте следующее code:
#!/bin/bash
# This script will switch cpu mode to performance on charging automatically
# Author: @saleh_awal
tFile=/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
if on_ac_power; then
# charging on
if grep -qi "powersave" $tFile; then
echo performance | tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
else
echo "already updated to performance"
fi
else
# charging off
if grep -qi "performance" $tFile; then
echo powersave | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
else
echo "already updated to powersave"
fi
fi
4- добавьте cronjob для вашего пользователя root следующим образом:
sudo crontab -e
затем добавьте эту строку внизу файла, которая будет запускать код каждые 10 секунд
*/10 * * * * /opt/system_cupmode.sh