単一プロセスのスケジュール時間を短縮する

単一プロセスのスケジュール時間を短縮する

プライベート ブロックチェーンをマイニングするプロセスがあり、CPU を 100% 使用しています。これにはそれほど多くの計算能力は必要ないため、電気代を削減するには、この特定のプロセスをたまにのみスケジュールして、CPU の消費を約 10% に抑えるように構成する必要があります。

特定のプロセスが取得するタイムスライスを減らすにはどうすればよいですか?

答え1

次のようなツールを使ってみてくださいCPU制限(通常、人気のあるディストリビューションのリポジトリで利用できるはずです)。これにより、CPU 使用率をパーセンテージで制限できるため、より便利になる場合があります。

cgcreateそれ以外の場合は、cgroups-tools 経由で制御し、 /で制限を設定する必要があります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

関連情報