如何通过监控 cpu、内存、磁盘 io 等来安排作业。

how to schedule job with the monitoring of cpu,memory, disk io, etc.

我的问题是我有一个专用服务器,但资源仍然有限,即 IO、内存、CPU 等。 我每天需要 运行 很多工作。有些工作是 io 密集型的,有些工作是计算密集型的。有没有办法监控当前状态并决定何时从我的工作池中开始新工作。 例如,当它知道当前 运行ning 作业是 io 密集型时,它可以午餐一个不依赖太多 io 的作业。或者它可以选择一个使用大量磁盘 io 的 运行ning 作业,停止它,稍后重新安排它。 我想出了 docker 的解决方案,因为它可以监视进程,但我不知道在 docker 之上构建的这种调度程序。 谢谢

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

您不能根据节点的动态 行为准确地将作业分配给节点。这意味着提前知道作业将使用什么类型的资源。 docker 中根本没有描述。

Docker 提供了一种标记启用 swarm filers 的节点的方法,这将使像 swarm 这样的集群管理器能够根据标记表示的标准 select 正确的节点。

但是Docker不知道"job"即将推出。

根据您使用的 Docker 版本,您有多种产品选择。您可以使用本机 Docker Swarm (just went GA in v1.9), you can give the more mature Kubernetes a try or HashiCorp's Nomad (early days) and there's of course Apache Mesos+Marathon. See also this comparison 获取有关该主题的更多信息。