
Tenho um processo que está minerando um blockchain privado e que ocupa 100% da CPU. Não preciso de tanto poder de computação para isso, então para reduzir minha conta de energia preciso configurar esse processo específico para ser agendado apenas de vez em quando para atingir cerca de 10% de consumo da CPU.
Como posso reduzir o tempo que um determinado processo está obtendo?
Responder1
Você pode tentar usar ferramentas comocpulimit(normalmente deve estar disponível em repositórios de distros populares). Permite limitar o uso da CPU por porcentagem, o que pode ser mais conveniente.
Caso contrário, você pode querer controlá-lo via cgroups-tools e definir o limite com cgcreate
/ cgset
. Você precisa ajustar valores cpu.cfs_period_us
e cpu.cfs_quota_us
.
Responder2
#!/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