減少單一進程的調度時間

減少單一進程的調度時間

我有一個正在挖掘私有區塊鏈的進程,它佔用了 100% 的 CPU。為此,我不需要那麼多的運算能力,因此為了減少能源消耗,我需要將此特定進程配置為僅偶爾調度一次,以實現大約 10% 的 CPU 消耗。

如何減少特定進程所獲得的時間片?

答案1

您可以嘗試使用類似的工具CPU限制(通常應該在流行發行版的儲存庫中可用)。它允許按百分比限制 CPU 使用率,這可能更方便。

cgcreate否則,您可能想透過 cgroups-tools 控制它並使用/設定限制cgset。您需要調整值cpu.cfs_period_uscpu.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

相關內容