performance - 如何对我的 Web 应用程序进行容量规划并决定部署架构?

标签 performance deployment load-testing capacity-planning

我在小型 AWS 实例(双核 AMD、2.60 GHz、1.7 GB RAM)上部署了一个 ASP.net Web 应用程序。我想在这台服务器上为 300 个并发用户执行负载测试, future 我想为我的应用程序设计 250,000 个注册用户的暂定容量规划和部署架构。

我是这方面的新手,之前没有做过任何类型的负载测试。

The Use-case and scenario of my application will be as below:

Scenario - 250, 000 registered users in database

Concurrency – 5% - 7% - approximately 17,500

Each user has a book shelf and assuming each user is subscribed for 10 books. Each book is of around 25 MB in size with 400 pages

Use cases

  1. User Login

    • Database authentication & authorization
  2. View Book Shelf with book images

    • Book Shelf (.swf) - 400 KB (gets loaded for each user)

    • 10 book images will be loaded (20KB per image)(approximately)

    • catalog.xml - 30 KB / user for allocated for the user

    • Note: Approximately 650KB of data is gets downloaded on to client machine

  3. Browse book : On clicking a book image following files & its sizes will be downloaded to clients machine

    • One time
    • Reader.swf - 950 KB (first download)
    • XML data’s of approximately 100 KB / per book (on click)
      • Book.xml
      • Annotation.xml
      • Catalog.xml
      • Usersettings.xml 40KB*4 = 160 KB per user (.swf)
    • Note: Approximately 1200KB of data is gets downloaded on to client machine


有人可以建议我如何继续吗?

非常感谢提前,
阿马尔

最佳答案

完成第一个目标(测试 300 个用户)非常简单 - 选择负载测试工具,构建场景并进行测试。然后调整/优化并重复。

但我认为你更大的问题是如何测试和规划你的全部容量 - 你说这是大约 18k 并发用户。首先,确保数字(用户群的 7%)是峰值并发,而不是平均值。您需要测试峰值。

因此,假设您正在计划一个负载平衡的多服务器集群来处理该负载,下一步是确定单个 Web/应用程序服务器的最大容量,而没有负载平衡器。这为您提供了一个基准,您可以使用它来判断集群的性能。这是一个非常重要的步骤,我们的许多客户跳过了这一步,这对他们自己造成了损害。这很重要,因为在许多情况下,负载平衡系统不会随集群中的服务器数量线性扩展。理想情况下,它应该和好的系统非常接近。您会惊讶地发现,我们看到的系统根本无法很好地扩展。我们甚至看到一些系统作为集群的容量实际上低于单个服务器可以单独处理的容量。

建立基线后,您可以初步估计所需的服务器总数,然后可以构建集群。我建议接下来使用 2 个 Web/应用服务器进行测试。这应该使您的容量几乎翻倍。如果不是,那么您需要在进行更大的测试之前确定原因。可能的候选对象是负载均衡器设置或数据库(如果单个数据库服务器为所有 Web/应用程序服务器提供服务)。有时,应用程序架构的一些更基本的东西在起作用。

如果您对从 1 台服务器扩展到 2 台服务器的最佳性能感到满意,那么您可以继续扩展到您的完整集群并测试最大容量。如果您没有看到预期的可扩展性,请准备好回溯 - 使用 3、4、5 个服务器等进行测试。

我希望这有帮助!祝你好运:>

关于performance - 如何对我的 Web 应用程序进行容量规划并决定部署架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4745833/

相关文章:

ip - 如何在jmeter中设置IP欺骗?

sql - 使用一系列值查找时间线 - 实体建模

通过 R 中的函数减少矩阵的列

linux - 通过 GPRS 部署到嵌入式设备

powershell - Azure 通过自动部署启用 Web 部署

language-agnostic - 允许已部署的应用程序进行热修复的一些好的策略是什么?

hudson - 使用 Jmeter 进行负载分布测试

.net - 在 WPF .Net 中测量 UI 性能的正确方法

c# - `Where` 中新对象的 Linq 查询性能

vaadin - 负载测试vaadin 7.0.4返回错误No UIProvider