단일 프로세스의 스케줄링 시간 단축

단일 프로세스의 스케줄링 시간 단축

프라이빗 블록체인을 채굴하는 프로세스가 있는데 CPU를 100% 사용합니다. 이를 위해서는 그렇게 많은 컴퓨팅 성능이 필요하지 않으므로 에너지 비용을 줄이려면 이 특정 프로세스를 가끔 한 번만 예약하여 약 10%의 CPU 소비를 달성하도록 구성해야 합니다.

특정 프로세스가 얻는 타임슬라이스를 어떻게 줄이나요?

답변1

다음과 같은 도구를 사용해 볼 수 있습니다.CPU 한도(일반적으로 인기 있는 배포판의 저장소에서 사용할 수 있어야 합니다). CPU 사용량을 백분율로 제한할 수 있어 더욱 편리합니다.

그렇지 않으면 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

관련 정보