【问题标题】:finding active framework current resource usage in mesos在 mesos 中查找活动框架当前资源使用情况
【发布时间】:2016-03-03 07:11:16
【问题描述】:

哪个HTTP 端点 将帮助我找到所有活动框架的当前资源利用率?

我们需要这些信息,因为我们想要动态扩展 Mesos 集群,而我们的算法需要有关每个活动框架正在使用哪些资源的信息。

【问题讨论】:

    标签: mesos mesosphere


    【解决方案1】:

    我认为专注于框架并不是您真正想要的。你所追求的可能是 Mesos Slave 利用率,可以通过调用来请求

    http://{mesos-master}:5050/master/state-summary
    

    在 JSON 答案中,您会找到一个包含从属对象数组的 slaves 属性:

    {
        "hostname": "192.168.0.3",
        "cluster": "mesos-hw-cluster",
        "slaves": [{
            "id": "bd9c29d7-8530-4c5b-8c50-5d2f60dffbf6-S2",
            "pid": "slave(1)@192.168.0.1:5051",
            "hostname": "192.168.0.1",
            "registered_time": 1456826950.99075,
            "resources": {
                "cpus": 12.0,
                "disk": 1840852.0,
                "mem": 63304.0,
                "ports": "[31000-32000]"
            },
            "used_resources": {
                "cpus": 5.75,
                "disk": 0.0,
                "mem": 14376.0,
                "ports": "[31000-31000, 31109-31109, 31267-31267, 31699-31699, 31717-31717, 31907-31907, 31979-31980]"
            },
            "offered_resources": {
                "cpus": 0.0,
                "disk": 0.0,
                "mem": 0.0
            },
            "reserved_resources": {},
            "unreserved_resources": {
                "cpus": 12.0,
                "disk": 1840852.0,
                "mem": 63304.0,
                "ports": "[31000-32000]"
            },
            "attributes": {},
            "active": true,
            "version": "0.27.1",
            "TASK_STAGING": 0,
            "TASK_STARTING": 0,
            "TASK_RUNNING": 7,
            "TASK_FINISHED": 18,
            "TASK_KILLED": 27,
            "TASK_FAILED": 3,
            "TASK_LOST": 0,
            "TASK_ERROR": 0,
            "framework_ids": ["bd9c29d7-8530-4c5b-8c50-5d2f60dffbf6-0000", "bd9c29d7-8530-4c5b-8c50-5d2f60dffbf6-0002"]
        },
        ...
    }
    

    您可以遍历所有从属对象并通过汇总 resources 然后减去 used_resources 的摘要来计算总体资源使用情况。

    【讨论】:

    • 谢谢托比。我们确实考虑了从属利用率和整体集群资源利用率。但是我们经常观察到,即使某些作业处于活动状态,但由于所有资源都被其他作业使用,因此长时间没有获得任何资源。在这种情况下,我们想要所有那些根本没有分配任何资源的活动框架。简单流程是 3 个 spark 作业和 2 个从站。 2 个工作占用了这 2 个从属设备的所有资源,而第 3 个工作很长时间没有收到任何报价,而且两个从属设备的负载和 CPU 利用率都很低,因此没有任何迹象
    • 嗯,我怀疑这是解决这个问题的正确方法。您应该确保限制 Spark 执行程序的资源(请参阅spark.apache.org/docs/latest/…)。否则它将直接占用所有可用资源...查看 Mesos API 文档,有一些端点可以为您提供信息。但首先我会修复 Spark 的行为。
    • 补充一点:如果你在slave上执行top,你实际看到的不一定是你在slave的used_resources中看到的。恕我直言,Spark 获取了所有可用的内存和内核,并不一定意味着操作系统利用率为 100%。尽管如此,从 Mesos 的角度来看,Spark 任务占用的资源才是最重要的......
    • 有道理。我们可以限制 spark 使用一些最大数量的核心。但是这个 Mesos 集群是在云上的,所以任何授权用户也可以在上面运行一些任务,我们无法控制 Spark 的这些属性。所以我们必须支持这样的条件。基本上,这个 Mesos 集群支持数据中心和云类型的混合。谢谢 Tobi,我会查看您提供的 mesos http 端点链接并找出答案。
    • 我明白了...也许使用 Spark Jobserver 之类的东西对您的用例有意义,因为恕我直言,这将允许您控制上下文创建,因此也可以控制配置参数。
    猜你喜欢
    • 1970-01-01
    • 2015-10-21
    • 2017-10-15
    • 2010-09-11
    • 2019-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-14
    相关资源
    最近更新 更多