如何安排监控CPU,内存,磁盘等工作

我的问题是我有一个专用的服务器,但资源仍然有限,即IO,内存,CPU等,我需要每天运行大量的工作。 一些工作是密集型的,有些工作是计算密集型的。 有没有办法来监控当前的状态,并决定何时从我的工作池开始一个新的工作。 例如,当它知道当前正在运行的工作是密集型的时,它可以在一个不能继续工作的工作中吃饭。 或者它可以select一个正在使用大量磁盘io的正在运行的作业,停止它,稍后重新安排它。 我提出了docker的解决scheme,因为它可以监视进程,但是我不知道在Docker之上构build这样的调度器。 谢谢

您可以检查docker stats命令,以获取有关由docker守护程序pipe理的容器中运行的基本指标。

根据dynamic行为,您无法将作业完全分配给节点。 这意味着事先知道工作将使用哪种types的资源。 Docker根本没有描述这一点。

Docker提供了一种标记允许swarm文件pipe理器的节点的方法,这将使像swarm这样的集群pipe理器能够根据标记表示的标准来select正确的节点。

但是Docker并不知道即将推出的“工作”。

取决于您所在的Docker版本,您有许多选项可供使用。 您可以使用本地Docker Swarm (刚刚在v1.9版本中使用GA),您可以尝试更成熟的Kubernetes或HashiCorp的Nomad (早期),当然还有Apache Mesos + Marathon 。 有关该主题的更多信息,另请参阅此比较 。