我有许多应用程序运行在mesos的容器上,通过marathon进行管理。我已经给了每个应用程序的cpu分配,而通过马拉松部署,如1,.5等,但在马拉松的cpu分配,并不意味着它的1个cpu或一半的cpu。这仅仅意味着它的分时比率。每个容器还可以访问其主机上的所有CPU。
现在,我想测量mesos从机上每个容器的cpu效率,以便减少或增加marathon中每个应用程序的cpu分配。我只想让资源利用更加高效。
我可以用https://github.com/bobrik/collectd-mesos-tasks,但问题是cpu利用率指标与marathon中的cpu分配无关。
2条答案
按热度按时间zpf6vheq1#
在mesoswebui中,您可以看到执行器使用了多少cpu
下面是从中收集统计信息的代码
/monitor/statistics
终结点并计算cpu使用率。你对什么感兴趣
cpus_total_usage
所以下面的方法应该适合你让我们假设
a
以及b
是某个时间点统计数据的快照。计算cpus_total_usage
,我们需要计算executor在系统和用户空间中花费的时间,并将其除以a
以及b
.mkh04yzy2#
根据您自己想要投入多少工作,您可以使用marathon事件总线,更一般地说,可以使用marathonhttpapi(例如这个端点)以及诸如cadvisor或cinf之类的低级工具来自己进行计算。如果您不想自己编写代码,我建议您使用sysdig、datadog或prometheus来完成繁重的工作。