我有一个mesos / marathon系统,它在大多数情况下都运行良好。有超过20个进程在运行,其中大多数只使用部分CPU。但是,有时(特别是在开发期间),进程将启动并开始使用尽可能多的CPU。我可以在我的系统监视器上看到有一个挂钩的CPU,但我不知道马拉松进程导致了什么。
是否有监控应用程序显示马拉松工作的CPU使用率?随着时间的推移显示出来的东西。这也有助于理解扩展和CPU要求。跟踪内存使用情况会很好,但不是CPU。
答案 0 :(得分:2)
您的代理(从属)节点上似乎没有配置任何隔离机制。 mesos-slave
附带--isolation
标记,默认为posix/cpu,posix/mem
。这意味着在进程级别进行隔离(几乎没有隔离)。使用cgroups/cpu,cgroups/mem
隔离将确保在超出给定内存限制时内核将杀死给定任务。内存是一个可以轻松实施的硬约束。
限制CPU更复杂。如果您的机器为Mesos提供了8个CPU核心,并且您的每个任务都设置为需要cpu=2.0
,那么您最多可以在那里运行4个任务。这很容易,但在给定时刻,您的4个任务中的任何一个都可能能够利用所有空闲核心。如果您的某些作业行为不当,可能会影响在同一台计算机上运行的其他作业。有关限制CPU利用率的信息,请参阅Completely Fair Scheduler(或相关问题How to understand CPU allocation in Mesos?以获取更多详细信息)。
关于监控,有许多可能的选择,请选择适合您要求的选项。您可以组合使用许多解决方案,其中一些是开源的其他企业级解决方案(按随机顺序):