我有一个mesos /马拉松系统,它在大部分情况下运行良好。有超过20个进程正在运行,其中大多数只使用CPU的一部分。然而,有时(特别是在开发期间),一个进程会旋转起来,开始使用尽可能多的CPU。我可以在我的系统监视器上看到有一个固定的CPU,但我不知道是什么马拉松进程造成的。
是否有显示马拉松作业CPU使用情况的监视器应用程序?随着时间的推移而显示出来的东西。这也将有助于理解缩放和CPU需求。跟踪内存使用情况很好,但仅次于CPU。
发布于 2016-12-22 10:43:38
似乎您还没有在代理(从)节点上配置任何隔离机制。mesos-slave附带了默认为posix/cpu,posix/mem的--isolation标志。这意味着在进程级别上的隔离(几乎没有隔离)。使用cgroups/cpu,cgroups/mem隔离将确保给定的任务将被内核杀死,如果超过给定的内存限制。内存是一个很难执行的约束。
限制CPU是更复杂的。如果您的机器为Mesos提供了8个CPU核心,并且每个任务都被设置为需要cpu=2.0,那么最多可以在那里运行4个任务。这很简单,但在给定的时刻,您的4项任务中的任何一项都可以利用所有空闲的核心。如果您的某些作业行为不当,它可能会影响在同一台机器上运行的其他作业。有关限制CPU利用率的信息,请参阅完全公平调度 (或相关问题如何理解Mesos中的CPU分配?以获得更多详细信息)。
关于监视,有许多可用的可能性,选择一个适合您的需求的选项。您可以组合许多解决方案,有些是开源的其他企业级解决方案(按随机顺序排列):
https://stackoverflow.com/questions/41190797
复制相似问题