【发布时间】:2012-02-24 21:36:39
【问题描述】:
我们的基础架构团队使用 Radware 配置了负载平衡。基本上我们有 3 个负载均衡的 Web 服务器。
在我们上线之前,我想测试并确保负载平衡正常工作。如何测试以下内容:
- 3台服务器负载均衡,请求均匀分布。 (是否存在任何自动化工具?)
- Asp.net InProc 会话正在工作。
【问题讨论】:
-
ServerFault 的运气可能会更好。
我们的基础架构团队使用 Radware 配置了负载平衡。基本上我们有 3 个负载均衡的 Web 服务器。
在我们上线之前,我想测试并确保负载平衡正常工作。如何测试以下内容:
- 3台服务器负载均衡,请求均匀分布。 (是否存在任何自动化工具?)
- Asp.net InProc 会话正在工作。
【问题讨论】:
您可以通过首先在您的站点上生成人工负载(使用多个负载生成器中的任意一个)来进行测试。然后查看每个站点的 Windows 性能计数器:每秒 HTTP 请求数和 CPU 使用率是合理的高级指标。
是的,有自动化工具,但它们通常需要进行大量设置,而且更好的工具会收取费用。性能计数器快速、简单且免费。
正如@swannee 所说,除非您的负载平衡器配置为使用粘性会话,否则 InProc 会话将无法在负载平衡场景中工作。最好使用带有负载平衡的 SQL Server 会话。
FWIW,您可以通过在 AppPool 配置对话框中启用 IIS 网络花园(多个工作进程),在单个服务器上的“迷你”负载平衡场景中测试您的软件。
【讨论】:
您能否查看 IIS 服务器日志以了解每台服务器的点击次数?
http://msdn.microsoft.com/en-us/library/ms953324.aspx
此外,除非您使用粘性会话,否则 InProc 会话会出现问题。它不会在服务器场上工作(除非您声明您打开了粘性会话)。如果您没有粘性会话,则只需进行一些手动测试,您就可以在请求之间快速判断会话正在丢失。
【讨论】:
我们的组织制作了一系列 ping 和高级状态页面。这些页面由我们的负载平衡器监控,因此如果一个节点失去与数据库服务器的连接或节点本身出现问题,它可以取出不健康的节点。
我们的 ping 页面会显示您正在连接的服务器名称和状态。它们可以通过自己的通用服务器名称获得,例如 server01.application.com/ping 和 server02.application.com/ping,但更重要的是,它们都在 application.com/ping 上回答。
刷新页面将向我们显示一个新连接(您可以看到服务器名称更改)。
要测试负载,您可以使用 WCat,它不是最容易设置和编写脚本的工具,但它可以工作。
测试会话。您需要构建一些页面,您可以在这些页面上进行负载测试以测试会话
【讨论】: