windows - 无需任何第三方即可自行扩展的 Azure 应用程序的模式是什么?

标签 windows performance azure monitoring scaling

我想让我的 Azure Web 角色以独立的方式进行扩展。

到目前为止,我见过的所有扩展解决方案都包含一些第三方 - 它可以是监视 Azure 角色并对其进行扩展的特殊服务,也可以是用于手动扩展的应用程序。我想要的是我的角色中的额外代码,用于决定何时扩展并启动扩展。

我预见到以下问题。首先,每个时间点应该只有一个角色实例来决定何时扩展以及如何扩展,以便两个或多个实例不会造成扩展困惑。其次,如果该特定实例由于某种原因死亡,则必须在某个合理的时间内选择另一个实例。最后,所有的东西都不应该带来太多的开销。

是否有任何模式可以实现这种独立的扩展?

最佳答案

我们一直在运行autoscaled apps在 Windows Azure 上使用我们自己的 provisioning lib有一段时间了,甚至在 WASABi 发布之前。

迄今为止最适合我们的模式包括以下几个方面:

  • 不要相信任何低级指标(例如内存或 CPU 使用率)来定义您的扩展指标,而是制定一个简单但高度相关的指标来定义您的工作负载(以及所需的虚拟机数量)。<
  • 在所有虚拟机之间保持严格对称(无主虚拟机或从属虚拟机):每个虚拟机都有可能负责更改所配置的虚拟机数量。
  • 每个虚拟机都有一个处理自动缩放的后台线程。 99.999% 的时间里,该线程什么都不做。每分钟,线程都会尝试获取 blob lease ,然后运行配置逻辑。如果无法立即获取 blob 租约,请放弃,另一个虚拟机已经在上面了。
  • 通过 Azure 实例化虚拟机大约需要 5 分钟,您将立即支付 1 小时的费用。我建议在去实例化时稍微,等待 30 分钟左右,10 分钟后去实例化没有任何好处。
  • 配置 API 很慢,请确保调用线程在此期间不会阻塞虚拟机上的任何内容。
  • 将虚拟机数量保持在 2 台以上,以延长正常运行时间。

关于windows - 无需任何第三方即可自行扩展的 Azure 应用程序的模式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8972682/

相关文章:

windows - 是否可以在 Windows 中为每个应用程序设置 ANSI 编码

.net - 如何判断连接是否按流量计费?

c++ - 增加 Stack Size 的缺点以及 Stack Commit 和 Reserve 之间的区别

Azure 搜索 - 分区不足响应错误

azure - SSH 不适用于 MS Azure 中的某些虚拟机

windows - 在 Windows 上读取原始 USB 输入

c# - 检查用户是否是组的成员

Java fillRect() 不一致

数据库选择快速更新

azure pyspark from 模块导入 myfunctions;无模块名称