путем выполнения
for file in /sys/devices/system/cpu/cpu*/online; do echo 0 > $file; done
мы устанавливаем CPU офлайн. существует ли сценарий, чтобы сделать работу замены в горячем режиме, обнаружить использование CPU и выше набора % CPU онлайн и ниже набора использования % снова CPU офлайн? если нет никакого сценария, уже сделанного, там способ обнаружить текущее использование CPU только и сделать что-то, если использование выше... %?
~EDITING мой вопрос:
я в настоящее время здесь:
#!/bin/bash
while true
do
if (echo $[100-$(vmstat 1 2|tail -1|awk '{print $15}')] > 5) then
for file in /sys/devices/system/cpu/cpu*/online; do echo 1 > $file; done
fi
if (echo $[100-$(vmstat 1 2|tail -1|awk '{print $15}')] < 5) then
for file in /sys/devices/system/cpu/cpu*/online; do echo 0 > $file; done
fi
sleep 3
done
pfff это должно работать....
можно ли исправить меня?
Наконец-то. Это 1-й горячий процессор для Ubuntu. Это не так много, но это лучшее, что я могу сделать сейчас для старых многоядерных процессоров с большим разрядом батареи.
Загрузите скрипт по ссылке ниже, сделайте его исполняемым, а затем скопируйте и вставьте его в /etc/init.d с помощью терминала.
sudo cp /<path to the script>/hotplug.sh /etc/init.d
затем обновите rc.d, чтобы выполнить его при загрузке
sudo update-rc.d hotplug.sh defaults
готово. Теперь ваш ноутбук будет потреблять намного меньше энергии, чем раньше.
Нет необходимости дополнительно улучшать скрипт и добавлять проверку для каждого ядра процессора, потому что это увеличит нагрузку. Более новые процессоры имеют состояние C, чтобы сделать это, и это не имеет большого влияния на нагрузку, но в этом случае, если мы создадим огромный скрипт, который будет работать все время без отдыха, это определенно увеличит нагрузку, и мы потеряем стабильность и гладкость.