
Ich habe einen Prozess, der eine private Blockchain abbaut und 100 % der CPU beansprucht. Ich brauche dafür nicht so viel Rechenleistung. Um meine Stromrechnung zu senken, muss ich diesen bestimmten Prozess so konfigurieren, dass er nur gelegentlich geplant wird, um einen CPU-Verbrauch von etwa 10 % zu erreichen.
Wie reduziere ich das Zeitfenster, das ein bestimmter Prozess erhält?
Antwort1
Sie können versuchen, Tools wieCPU-Begrenzung(sollte normalerweise in Repos beliebter Distributionen verfügbar sein). Es ermöglicht die prozentuale Begrenzung der CPU-Auslastung, was möglicherweise praktischer ist.
Andernfalls möchten Sie es möglicherweise über cgroups-tools steuern und das Limit mit cgcreate
/ festlegen cgset
. Sie müssen die Werte cpu.cfs_period_us
und anpassen cpu.cfs_quota_us
.
Antwort2
#!/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