
我有一個正在挖掘私有區塊鏈的進程,它佔用了 100% 的 CPU。為此,我不需要那麼多的運算能力,因此為了減少能源消耗,我需要將此特定進程配置為僅偶爾調度一次,以實現大約 10% 的 CPU 消耗。
如何減少特定進程所獲得的時間片?
答案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