【问题标题】:asp.net how to test load balancing is workingasp.net如何测试负载平衡是否正常工作
【发布时间】:2012-02-24 21:36:39
【问题描述】:

我们的基础架构团队使用 Radware 配置了负载平衡。基本上我们有 3 个负载均衡的 Web 服务器。

在我们上线之前,我想测试并确保负载平衡正常工作。如何测试以下内容:

  1. 3台服务器负载均衡,请求均匀分布。 (是否存在任何自动化工具?)
  2. Asp.net InProc 会话正在工作。

【问题讨论】:

  • ServerFault 的运气可能会更好。

标签: asp.net load-balancing


【解决方案1】:

您可以通过首先在您的站点上生成人工负载(使用多个负载生成器中的任意一个)来进行测试。然后查看每个站点的 Windows 性能计数器:每秒 HTTP 请求数和 CPU 使用率是合理的高级指标。

是的,有自动化工具,但它们通常需要进行大量设置,而且更好的工具会收取费用。性能计数器快速、简单且免费。

正如@swannee 所说,除非您的负载平衡器配置为使用粘性会话,否则 InProc 会话将无法在负载平衡场景中工作。最好使用带有负载平衡的 SQL Server 会话。

FWIW,您可以通过在 AppPool 配置对话框中启用 IIS 网络花园(多个工作进程),在单个服务器上的“迷你”负载平衡场景中测试您的软件。

【讨论】:

  • 在性能计数器上完全正确。在这种情况下很容易设置和使用。
【解决方案2】:

您能否查看 IIS 服务器日志以了解每台服务器的点击次数?

http://msdn.microsoft.com/en-us/library/ms953324.aspx

此外,除非您使用粘性会话,否则 InProc 会话会出现问题。它不会在服务器场上工作(除非您声明您打开了粘性会话)。如果您没有粘性会话,则只需进行一些手动测试,您就可以在请求之间快速判断会话正在丢失。

【讨论】:

    【解决方案3】:

    我们的组织制作了一系列 ping 和高级状态页面。这些页面由我们的负载平衡器监控,因此如果一个节点失去与数据库服务器的连接或节点本身出现问题,它可以取出不健康的节点。

    我们的 ping 页面会显示您正在连接的服务器名称和状态。它们可以通过自己的通用服务器名称获得,例如 server01.application.com/ping 和 server02.application.com/ping,但更重要的是,它们都在 application.com/ping 上回答。

    刷新页面将向我们显示一个新连接(您可以看到服务器名称更改)。

    要测试负载,您可以使用 WCat,它不是最容易设置和编写脚本的工具,但它可以工作。

    测试会话。您需要构建一些页面,您可以在这些页面上进行负载测试以测试会话

    【讨论】:

      猜你喜欢
      • 2016-12-02
      • 2015-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多