我正在运行一个java进程作为docker swarm服务。但是这项服务最终会占用我的CPU。我尝试将CPU限制为1,并且docker stats显示容器要100%一致,但我希望在95%的容器中失败并重新创建。我有什么方法可以做到这一点吗?
提前致谢。
答案 0 :(得分:1)
与内存不同,CPU是一种可压缩资源。当内存请求超过限制时,内核将终止应用程序。当CPU超过限制时,内核只会让CPU上的时间更少,而且运行速度更慢。
没有内置功能可以改变这种行为。您需要实施某种形式的外部监控,并能够在超过阈值时终止容器。
更有可能的是,您真正想要的是为容器设置健康检查,以检测应用程序无响应。您需要使用swarm模式运行容器,以自动重新创建具有失败的运行状况检查的容器。