使用 Ubuntu Server 和 AWS 微型机箱,因此如果 CPU 利用率飙升AWS 实际上会关闭该盒子的 CPU(大约 30 秒)。
nice
虽然不能解决问题,但是cpulimit
确实能解决问题(我在自己的 CPU 密集型 cron 作业中使用它)。
一些系统默认的 cron 作业正在触发 AWS CPU 限制器。
大约有 15 个默认的 cron 作业脚本,与其尝试重写每个脚本以使用 cpulimit,有没有办法使用 cpulimit 来限制所有 cron 作业的 CPU(那必须包括子流程由各种脚本产生的?
答案1
我知道这个问题最初是在 2011 年提出的,但现在你可以通过以下方式获得类似的结果
改变cron.service
到限制 CPU 和 I/O 优先级:
$ sudo systemctl edit cron.service
# edits go to /etc/systemd/system/cron.service.d/override.conf
默认情况下,这也适用于 cron 生成的子进程。我使用类似这样的方法:
[Service]
Nice=19
CPUSchedulingPolicy=idle
IOSchedulingClass=idle
答案2
看起来我找到了我的问题的答案,这里很棒的东西:一个可以在整个框内运行的 cpulimit 守护进程脚本。