首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >负载均衡和调度算法

负载均衡和调度算法
EN

Stack Overflow用户
提问于 2010-06-15 14:42:30
回答 4查看 4K关注 0票数 9

所以我的问题是:

我有几个不同配置的服务器。我有不同的计算(作业);我可以预测计算每个作业大约需要多长时间。此外,我也有优先考虑的事项。我的问题是如何保持所有机器99-100%的负载,并以最好的方式安排作业。

每台机器一次可以做几次计算。作业被推送到机器上。中央机器知道每台机器的当前负载。此外,我想在这里分配一些机器学习,因为我将知道每个作业的统计数据(开始、完成、cpu负载等)。

如何以尽可能好的方式分配作业(计算),同时牢记优先级?

有什么建议、想法或算法吗?

仅供参考:我的平台.NET。

EN

回答 4

Stack Overflow用户

发布于 2010-06-15 15:15:53

  1. 看看Dryad linq。它已经在学术版本中,并且可能是Microsoft.
  2. Some code samples的useful.
  3. Win HPC server -企业分布式计算解决方案,它可以通过分析性能来帮助构建负载平衡。counters.
  4. Microsoft有StockTrader示例应用程序(带源代码),这是具有手写RoundRobin负载平衡的可分发SOA示例。
票数 2
EN

Stack Overflow用户

发布于 2011-07-01 22:23:42

作为另一种方法,您可以使用每台机器的峰值性能比估计值来调度作业。只有在考虑负载平衡系统的CPU运行时性能时,这才是非常有效的。这种方法忽略了I/O、集群大小、网络性能、内存模型类型等问题。看一看http://dx.doi.org/10.1145/1513895.1513901

一种更精确(接近负载平衡的作业分配)方法的建议将是算法-计算机体系结构相关的方法。在这种情况下,可以将优先级较高的作业调度到满足其要求的最佳服务器上-但您需要首先确定作业到服务器的最佳映射。您还可以在多处理器(而不是单处理器)上应用操作系统调度算法的一些方法。希望这篇文章对你有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2010-06-15 14:58:23

看起来这跟.NET没什么关系。

但是把你的机器想象成“工作线程”,在可用的CPU (或其他重要资源)上建立一个可用机器的“池”,然后使用你对每个任务的知识将每个作业推送到最适合的机器上。

如果你预先知道所有的作业,你可能会使用“最佳匹配”算法在正确的机器上以正确的顺序调度它们。你也可以看看“削减库存”算法;http://en.wikipedia.org/wiki/Cutting_stock_problem ...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3043033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档