Существует ли способ заставить Ваш процесс использовать меньше ЦП?

Существует несколько способов сделать это:

auditd

используйте следующую команду для включения контроля auditd файла (после того, как проверка auditd услуга работает):

auditctl -a exit,always -F path=/path/to/file

Затем загляните /var/log/audit/audit.log видеть, что продолжается.

Используйте следующее для удаления правила при выполнении:

auditctl -d exit,always -F path=/path/to/file

fanotify

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

Проблема с этим маршрутом, хотя то, что fanotify является новым, и нет никаких простых утилит командной строки, которые можно использовать для доступа к нему. Необходимо было бы записать собственный сценарий (если какие-либо библиотеки сценариев имеют интерфейс), или программа.

3
13.05.2014, 23:23
3 ответа
[1123773]можно использовать cpulimit для конкретного PID. например,

renice:

it установит минимально возможный приоритет для 1183[1123778].

0
27.01.2020, 21:48
[1123894] Для того, чтобы ваш процессор использовал меньше батареи, он должен работать медленнее. Общее количество процессорных инструкций, необходимых для выполнения Вашей программы, не зависит от скорости ее работы, поэтому ограничение доли процессорного времени, используемого Вашей программой, заставит ее использовать [1124331] больше [1124332] CPU, а не меньше. Когда Ваш процессор ничего не делает вместо того, чтобы выполнять программу, он все равно использует питание. В лучшем случае, паузы, во время которых процессор ничего не делает, будут достаточно продолжительными, чтобы он перешел в энергосберегающее состояние; но даже тогда вы заплатите штраф за переход в дополнительное состояние питания.

Ограничение доли процессорного времени, используемого вашим процессом, может косвенно привести к тому, что ядро переключится на менее быструю тактовую частоту процессора. Случится ли это, зависит от выбора регулятора частоты процессора [1124333]и его точных цифр. Это произойдет с регулятором по умолчанию (по требованию), но скорость трудно контролировать.

Если вы хотите сэкономить электроэнергию, лучшая стратегия - позволить вашей программе использовать 100% доступной мощности процессора (чтобы она заканчивалась как можно быстрее), но переключить процессор на как можно более медленную работу (потому что количество энергии, затрачиваемое на одну команду, увеличивается с увеличением скорости процессора).

Вы можете настроить частоту процессора через параметры в [1124335]/sys/devices/system/cpu0/cpufreq[1124336] и его двоюродных братьях, или с помощью различных пользовательских интерфейсов. Утилиты [1124337]cpufreq[1124338] предоставляют два инструмента командной строки:

cpufreq-info

,

Xephyr -screen 800x600 :1 > /dev/null &
sleep 2 && xkbcomp $DISPLAY :1
DISPLAY=":1" ./runcommand
cpufreq-set

. Существует [1124343] более продвинутый набор инструментов [1124344] под названием [1124345]cpupower[1124346], который теперь включен в исходные тексты ядра. Если вы используете Gnome, вы можете использовать его апплет Cpufreq. Существуют и другие графические интерфейсы.

Чтобы сэкономить заряд батареи, запустите свой процессор на минимальной частоте. Запустите [1124347]cpufreq-info[1124348] для отображения доступных частот. Запустите [1124349]cpufreq-set -c 0 -g powersave[1124350], чтобы всегда запускать процессор 0 на его минимальной частоте (повторяйте с увеличением значений для [1124351]-c[1124352] для других процессоров).[1123903].

1
27.01.2020, 21:48
[1123771]Не знаю, есть ли для этого элегантное решение, но вы можете остановить и перезапустить процесс с помощью сигналов:

-2
27.01.2020, 21:48

Теги

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