Я хочу, чтобы мое устройство использовало меньше ресурсов процессора для экономии заряда аккумулятора. У меня есть программа, которая использует большое количество этого. nice
не поможет, так как все, что он делает, это планирование изменений, когда процессор на 100%, в то время как я не хочу, чтобы это было так высоко
3
kill
процессов, потребляющих огромное использование процессораОтветы:
Чтобы ваш процессор потреблял меньше энергии, он должен работать медленнее. Общее количество инструкций ЦП, необходимых для выполнения вашей программы, не зависит от скорости, с которой она выполняется, поэтому ограничение доли времени ЦП, используемой вашей программой, заставит ее использовать больше ЦП, а не меньше. Когда ваш процессор ничего не делает вместо запуска вашей программы, он все еще использует энергию. В лучшем случае паузы, во время которых процессор ничего не делает, будут достаточными для перехода в состояние энергосбережения; но даже тогда вы заплатите штраф за переходы состояния дополнительной мощности.
Ограничение доли процессорного времени, используемого вашим процессом, может иметь косвенный эффект, заставляя ядро переключаться на менее быструю тактовую частоту процессора. То, произойдет ли это, зависит от выбора регулятора частоты процессора и точных цифр. Это произойдет с регулятором по умолчанию (ondemand), но скорость трудно контролировать.
Если вы хотите сэкономить электроэнергию, лучшая стратегия состоит в том, чтобы ваша программа использовала 100% доступной мощности ЦП (чтобы она заканчивалась как можно быстрее), но переключала ваш ЦП на работу как можно медленнее (поскольку количество энергии расходуется на инструкцию увеличивается с увеличением скорости процессора).
Вы можете настроить частоту ЦП через параметры в
/sys/devices/system/cpu/cpu0/cpufreq
и его двоюродных братьях или с различными пользовательскими интерфейсами. В утилитах CPUfreq обеспечивают два инструмента командной строки:cpufreq-info
,cpufreq-set
. Существует более продвинутый набор инструментов под названием cpupower, который теперь включен в исходные коды ядра. Если вы используете Gnome, вы можете использовать его апплет Cpufreq. Есть и другие графические интерфейсы.Чтобы сэкономить как можно больше батареи, запускайте процессор на минимальной частоте. Запустите
cpufreq-info
для отображения доступных частот. Запуск,cpufreq-set -c 0 -g powersave
чтобы всегда запускать CPU 0 на его минимальной частоте (повторите с увеличением значений для-c
других процессоров).источник
Вы можете использовать cpulimit для конкретного PID, например
Renice:
это установит приоритет на минимально возможный для 1183
источник
Я не знаю, есть ли элегантное решение для этого, но вы можете остановить и перезапустить процесс с помощью сигналов:
источник