我有一个托管web服务器的docker镜像和一个运行后台任务的docker镜像。web服务器大部分时间是空闲的,应该允许后台任务使用100%的CPU,但只要web服务器需要资源,它就应该优先使用CPU,以便能够快速响应。
如果所有的东西都在一台linux机器上运行,我可以使用像nice -n19 background-task这样的东西来运行这些任务,它们将允许web服务器根据需要使用尽可能多的CPU。
有没有办法在nice级别上运行整个容器?我知道我可以使用cpu_quota限制每个后台任务可用的CPU时间,但这并不能解决问题。如果web服务器想要使用所有4个CPU核心来为客户端提供服务,则应该允许这样做。如果web服务器不忙,则所有4个CPU核心都应在后台任务中工作。
如果我将Dockerfile中的命令更改为:
nice -n19 background-task这会在容器之间工作吗?容器内的进程都是在同一内核上运行的普通进程,所以看起来会这样,但我不确定。
这似乎是很明显要做的事情。我是不是遗漏了什么?
发布于 2019-01-16 19:26:17
docker-processes是常见的操作系统进程。
进程调度器并不关心是否使用Docker。
因此,nice/renice对于停靠进程的工作方式与其他进程相同。
https://stackoverflow.com/questions/54203306
复制相似问题