我的问题是我有专门的服务器,但资源仍然有限,即IO,内存,CPU等。 我每天都需要经营很多工作。有些工作是密集的,有些工作是计算密集型的。有没有办法监控当前状态,并决定何时从我的工作池开始新工作。 例如,当它知道当前正在运行的作业是密集型的时,它可以在一个不在io的大部分中继的作业中休息。或者它可以选择使用大量磁盘io的运行作业,停止它,稍后重新安排它。 我想出了docker的解决方案,因为它可以监控进程,但我不知道在docker之上构建这种调度程序。 感谢
答案 0 :(得分:0)
您可以查看docker stats
命令,以获取有关由docker守护程序管理的容器中运行的内容的基本指标。
您无法将作业完全分配给节点,具体取决于其动态行为。这意味着事先要知道作业将使用哪种类型的资源。这在docker中根本没有描述。
Docker提供了一种标记启用swarm filers的节点的方法,这将使群集管理器(如swarm)能够根据标记所代表的条件选择正确的节点。
但是Docker并不知道即将推出的“工作”。
答案 1 :(得分:0)
根据你所使用的Docker版本,你有很多prod选项。你可以使用原生的Docker Swarm(刚刚在v1.9中使用GA),你可以尝试更成熟的Kubernetes或HashiCorp的Nomad(早期),当然还有Apache Mesos + Marathon。有关该主题的更多信息,请参阅此comparison。