借助自动缩放功能在Cloud Foundry上进行分布式计算

问题描述 投票:0回答:1

我有一些计算密集和长期运行的任务。它可以很容易地分成子任务,也可以很容易地在以后聚合结果。例如Map / Reduce可以很好地工作。

我必须在Cloud Foundry上解决这个问题,我希望从autos-caling中获得优势,即由于高CPU负载而创建额外的实例。通常我使用Spring启动来开发我的cf应用程序。

任何想法都欢迎如何在cf.上以弹性方式分而治之。创建与cf一样多的实例会很棒,而无需在应用程序中配置可用的应用程序实例数量。此外,我需要通过加载CPU来激活自动缩放来触发创建实例。

spring-boot mapreduce distributed-computing cloudfoundry autoscaling
1个回答
0
投票

我必须在Cloud Foundry上解决这个问题

这听起来像你在这里正确的轨道。主要的是你需要编写你的应用程序,以便它可以与自身的多个实例共存(或者可能将其分解为协调工作和多个工作者应用程序的主节点)。无论您构建应用程序,能够扩展实例都至关重要。然后,您可以简单地cf scale添加或删除节点并增加容量。

如果你想变得聪明,你可以设置一个管道来运行你的工作。第一步是扩展应用程序的工作节点,第二步是安排工作运行,第三步是清理和缩小节点。

我建议这样做是因为手动缩放将是最简单的前进道路(请继续阅读原因)。

在那里我想从autos-caling中获益,即由于高CPU负载而创建额外的实例。

至于自动缩放,我认为这是可能的,但我也认为它使问题变得比它需要的更复杂。在Cloud Foundry上通过CPU进行自动扩展并不像看起来那么简单。 The way Linux reports CPU usage, you can exceed 100%, it's 100% per CPU core。将此与您可能不知道您的Cell上有多少CPU核心(如果您正在使用公共CF提供商)这一事实配对,核心数量可能随时间变化(如果您的提供商更改硬件)这一事实,这使得很难知道你应该在什么时候扩展你的应用程序。

如果您必须自动缩放,我建议尝试对其他指标进行自动缩放。可用的指标取决于您使用的自动缩放器工具。最好的情况是,如果您可以使用某个自定义指标,那么您可以使用工作队列长度或与您的应用程序相关的内容。如果不支持自定义指标,您可以随时将自己的自动缩放器与您的应用程序相关的指标进行合并(您可以通过使用CF API调整应用程序的实例来扩展和缩小)。

您也可以根据自动定标器提供的指标来破解解决方案。例如,您可以人为地夸大自动定标器支持的度量标准,该度量标准与您需要处理的工作负载成比例。

您也可以在工作日开始时进行扩展,并在一天结束时缩小规模。它不是动态的,但它很简单,它将为您带来一些效率提升。

希望有所帮助!

© www.soinside.com 2019 - 2024. All rights reserved.