【问题标题】:How many users on one azure instance before I hit performance issues?在我遇到性能问题之前,一个 Azure 实例上有多少用户?
【发布时间】:2010-08-20 06:40:45
【问题描述】:

我们的应用是一个简单的门户(将部署为 azure webrole),具有以下功能 -

  1. 登录
  2. 查看特定于该帐户的详细信息(没有繁重的计算,仅显示已保存在数据库中的详细信息)
  3. 查看发布到所有帐户的事件列表
  4. 密码更改等基本帐户管理

我想收集的是,您认为在一个小型 Azure 实例上这样的应用程序的合理并发登录数是多少? (我知道需要两个实例才能延长正常运行时间,但可以说我们只有一个)?

由于遗留原因,后端是 SQLAzure(而不是 Windows azure 存储)。为了了解数据大小,大约 1000 个用户的数据将存储在 50 MB 的存储空间内(图像仅针对事件存在,将从 Windows azure blobs 中提取)。

【问题讨论】:

  • 编辑:1000 个用户的数据将持有 50 MB,这只是给出数据的比例 - 用户总数将更多(50k+)。我正在尝试查看我可能需要多少个实例。

标签: asp.net azure


【解决方案1】:

只需使用适当的架构,您就可以在单个 Web 角色上托管数千个并发用户,甚至不会注意到负载或强调底层持久性(无论是 RDB 还是完整的事件存储)。如果并发用户数增加,扩展问题将仅仅是添加另一个 Web 角色或命令处理器(取决于负载的类型)。

我建议开始关注CQRS architectures,它非常适合云计算和几乎无限可扩展的解决方案的概念。

【讨论】:

  • 感谢 Rinat 会看一看。
  • 不错的阅读 - 尽管让我印象深刻的主要想法是以牺牲写入为代价获得更好的阅读以提高性能。但这仍然没有给我任何数字 - 我如此特别的原因是我们与感兴趣的客户的一些初步定价讨论将取决于它。如果我们现在说什么,然后再收取两次费用,您可以理解它的样子!
  • 我接受这个答案,但我仍然需要确认它实际上可以容纳数千名用户:)。希望这是真的。
  • 数字将取决于实际的实现。但是,如果您的 Web UI 只需要读取准备好的视图模型,请使用一些快速序列化程序(出于多种原因我强烈推荐 Google ProtoBuf)反序列化它们并将结果绑定到 UI - 我怀疑这将是繁重的操作。 StackOverflow 本身就是一个高性能 ASP.NET MVC 应用程序的例子。
【解决方案2】:

对于一千个用户,您不必担心。

IIS7 可处理多达一万或更多的并发用户,但归结为硬件。由于它会根据您在代码中实际执行的操作而有所不同,因此我建议您将应用发布到 azure 并对其进行压力测试。

这会告诉您是否需要多个前端,或者是数据库阻碍了您。

还可以在 azure 中实现日志记录以计时不同的事件。

[编辑]

要考虑的另一件事是什么是“并发用户”?如果要求响应时间为 1 秒,实际调用时间为 0.2 秒,则可以连续调用 5 次,仍视为并发。

【讨论】:

  • 感谢 Mikael - 我们将拥有超过 1000 个用户(在上面的评论中编辑),该比率只是为了说明每 1000 个用户的数据大小。我也同意压力测试将是一件好事,但现在它处于初始阶段,我将进行经济可行性研究,看看我们的每用户成本将是多少。
  • 如果您是 Microsoft 合作伙伴,您可以通过 MSDN 免费使用 Azure 8 个月,以便对其进行测试。我在我的 azure 网站上获得的最多点击量是每天大约 2000 次,所以并没有真正的可比性,但我进行 SQL 调用和外部下载,并且从来没有遇到过这样的问题。我还在我的答案中添加了一条关于什么是并发用户的行。
  • 感谢 Mikael - 我们已经是 bizspark 的合作伙伴并拥有免费配额,尽管到目前为止仅用于测试演练。
  • 8 个月现在延长到 16 个月 :) 欢呼!
  • @Roopesh:是的,至少对于那些已经免费使用前 8 个月的人来说:) 新用户可能只能获得 8 个。但谁知道呢。
【解决方案3】:

定义并发用户很重要。在角色中运行的单个实例不会有效地处理一千个实际并发用户,但增加实例将使您能够毫无问题地扩展它。但是,请记住,每个实例都是一个计算实例,因此会收取 $$。

一旦您确定要为应用程序提供哪些角色和实例配置,您就可以真正了解您需要什么。另外,请记住,如果站点真的很大,负载平衡和其他问题可能会发挥作用。您可能需要联系 Microsoft 以在该级别进行适当的计划,甚至可能需要更多到两个角色,每个角色中都有多个实例。

无论如何...只是添加一些额外的东西来考虑。

【讨论】:

  • hmm.. 但我认为负载平衡是由 Microsoft 在 Azure 中负责的 - 你只是说我们需要这个 Web 角色的 x 个实例,瞧......他们在那里,完全负载平衡!跨度>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多