Pitto Asked: 2011-01-12 05:50:19 +0800 CST2011-01-12 05:50:19 +0800 CST 2011-01-12 05:50:19 +0800 CST 我可以限制单个应用程序的 CPU 使用率吗? 772 有没有办法阻止 ClamScan 吃掉我的服务器 CPU? performance 5 个回答 Voted Sid 2011-01-12T05:57:08+08:002011-01-12T05:57:08+08:00 安装cpulimit sudo apt-get install cpulimit 它提供了不同的方法来限制进程的 CPU 使用率,foo比如 20% 通过它的进程名称: sudo cpulimit -e foo -l 20. 通过其绝对路径名: sudo cpulimit -P /usr/bin/foo -l 20 通过它的PID: 查找进程的PID pidof foo:。(比如说,它输出 1881) sudo cpulimit -p 1881 -l 20 Best Answer Clausi 2011-01-12T06:12:24+08:002011-01-12T06:12:24+08:00 就像 cpulimit 的替代方案一样: 您可以使用 nice-command 启动 clamscan,例如 nice -n 19 clamscan. 详情请参阅man nice。 它不会限制CPU,但会降低进程的优先级。 还有renice改变正在运行的进程的优先级。 ki9 2017-04-09T14:02:05+08:002017-04-09T14:02:05+08:00 如果您使用 systemd 运行 clamd,则可以使用该CPUQuota选项。 编辑/lib/systemd/system/clamav-daemon.service以将此行包含在该[Service]部分中: CPUQuota=20% 然后重启服务 sudo systemctl daemon-reload sudo systemctl reload-or-restart clamav-daemon Oli 2011-01-12T08:06:02+08:002011-01-12T08:06:02+08:00 这将是对克劳西答案的评论(我认为从系统管理的角度来看,这是最“正确的”),但它发展成太大而无法放入评论框中的东西。 Clamscan 有固定的工作量,因此将其限制在一定的速度意味着它只会花费更长的时间。它将使 CPU 争用更长时间。 让它尽可能快地运行意味着您可以充分利用您的 CPU。让它变得非常“好”意味着它会让其他进程在它自己之前完成他们的工作。这意味着如果有很多其他繁忙的进程,是的,它会花费很长时间来完成自己的工作,但如果那里什么都没有,它只会分块处理它的工作量。 lukasz 2011-01-12T07:02:59+08:002011-01-12T07:02:59+08:00 这个主题可能很有用:HOWTO:设置任何进程的最大 CPU 消耗百分比
安装cpulimit
它提供了不同的方法来限制进程的 CPU 使用率,
foo
比如 20%通过它的进程名称:
sudo cpulimit -e foo -l 20
.通过其绝对路径名:
sudo cpulimit -P /usr/bin/foo -l 20
通过它的PID:
pidof foo
:。(比如说,它输出 1881)sudo cpulimit -p 1881 -l 20
就像 cpulimit 的替代方案一样:
您可以使用 nice-command 启动 clamscan,例如
nice -n 19 clamscan
.详情请参阅
man nice
。它不会限制CPU,但会降低进程的优先级。
还有
renice
改变正在运行的进程的优先级。如果您使用 systemd 运行 clamd,则可以使用该
CPUQuota
选项。编辑
/lib/systemd/system/clamav-daemon.service
以将此行包含在该[Service]
部分中:然后重启服务
这将是对克劳西答案的评论(我认为从系统管理的角度来看,这是最“正确的”),但它发展成太大而无法放入评论框中的东西。
Clamscan 有固定的工作量,因此将其限制在一定的速度意味着它只会花费更长的时间。它将使 CPU 争用更长时间。
让它尽可能快地运行意味着您可以充分利用您的 CPU。让它变得非常“好”意味着它会让其他进程在它自己之前完成他们的工作。这意味着如果有很多其他繁忙的进程,是的,它会花费很长时间来完成自己的工作,但如果那里什么都没有,它只会分块处理它的工作量。
这个主题可能很有用:HOWTO:设置任何进程的最大 CPU 消耗百分比