reduzindo o tempo de agendamento de um único processo

reduzindo o tempo de agendamento de um único processo

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_use 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

informação relacionada