![防止 Ubuntu EC2 服务器因 CPU 使用率过高而锁定](https://linux22.com/image/725016/%E9%98%B2%E6%AD%A2%20Ubuntu%20EC2%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%9B%A0%20CPU%20%E4%BD%BF%E7%94%A8%E7%8E%87%E8%BF%87%E9%AB%98%E8%80%8C%E9%94%81%E5%AE%9A.png)
我有一台运行 celery 任务的服务器。它使用 运行几个工作线程celery multi start 2
,使用 进行配置systemd
。有时,它会超负荷工作并达到 100% CPU。当这种情况发生时,一切都会完全锁定:我无法通过 ssh 进入机器,任务本身停止工作(例如,我可以从另一台机器上看到数据库中不再创建记录)。
工作线程在我的 systemd 配置中运行Nice=2
。
为什么 CPU 问题会导致机器锁定?(我很确定这不是内存问题,因为当机器内存不足时,它只会杀死工作线程)。有什么方法可以阻止这种情况发生吗?我宁愿不杀死任务,而是暂停工作线程,直到机器再次拥有足够的资源。
实例类型为t2.medium。