
У меня есть процесс, который майнит частный блокчейн, и он потребляет 100% ресурсов ЦП. Мне не нужно так много вычислительной мощности для этого, поэтому, чтобы уменьшить счет за электроэнергию, мне нужно настроить этот конкретный процесс так, чтобы он запускался только время от времени, чтобы достичь потребления ЦП примерно в 10%.
Как уменьшить временной интервал, выделяемый определенному процессу?
решение1
Вы можете попробовать использовать такие инструменты, какcpulimit(обычно должно быть доступно в репозиториях популярных дистрибутивов). Позволяет ограничить использование процессора в процентах, что может быть более удобно.
В противном случае вы можете захотеть управлять им через cgroups-tools и установить лимит с помощью cgcreate
/ cgset
. Вам нужно настроить значения cpu.cfs_period_us
и cpu.cfs_quota_us
.
решение2
#!/bin/bash
#reduces consumption to 10% CPU using `sleep`s
GETH_PID=$1
if [ "$GETH_PID" == "" ] ; then
echo usage $0 GETH_PID
exit
fi
while true
do
kill -STOP $GETH_PID
sleep 9
kill -CONT $GETH_PID
sleep 1
done