Nulik Asked: 2019-06-07 05:34:21 +0800 CST2019-06-07 05:34:21 +0800 CST 2019-06-07 05:34:21 +0800 CST 减少单个进程的调度时间 772 我有一个正在挖掘私有区块链的进程,它占用了 100% 的 CPU。我不需要那么多的计算能力,所以为了减少我的能源费用,我需要将这个特定的进程配置为只在一段时间内安排一次,以实现大约 10% 的 CPU 消耗。 如何减少特定进程获得的时间片? linux scheduling 2 个回答 Voted Best Answer rush 2019-06-07T06:24:07+08:002019-06-07T06:24:07+08:00 您可以尝试使用cpulimit 之类的工具(通常应该在流行发行版的存储库中可用)。它允许按百分比限制 CPU 使用率,这可能更方便。 否则,您可能希望通过 cgroups-tools 控制它并使用cgcreate/设置限制cgset。您需要调整值cpu.cfs_period_us和cpu.cfs_quota_us. Nulik 2019-06-07T12:40:43+08:002019-06-07T12:40:43+08:00 #!/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
您可以尝试使用cpulimit 之类的工具(通常应该在流行发行版的存储库中可用)。它允许按百分比限制 CPU 使用率,这可能更方便。
否则,您可能希望通过 cgroups-tools 控制它并使用
cgcreate
/设置限制cgset
。您需要调整值cpu.cfs_period_us
和cpu.cfs_quota_us
.