故障排除

如果在配置后负载均衡无法按预期方式工作,则可以使用一些常用工具访问 Citrix ADC 资源并诊断问题。

负载平衡故障排除的资源

为获得最佳效果,请使用以下资源解决 Citrix ADC 设备上的内容交换问题:

  • 最新的 ns.conf 文件
  • 相关的 newnslog 文件
  • 在设备和相关客户端上记录的空虚数据包跟踪(如果可能)
  • ns.log 文件

除了上述资源之外,以下工具还可以加速故障排除:

  • 一个可以显示 HTTP 标头的浏览器附加工具。这可用于解决与持久性相关的问题。
  • 针对 Citrix ADC 跟踪文件自定义的 Wireshark 应用程序。

负载平衡问题疑难解答

  • 问题

当用户监视器绑定到绑定到已启用-m MAC 选项的虚拟服务器的服务时,CPU 使用率达到 100%。

  • 分辨率

将非用户监视器绑定到服务。

  • 问题

    我创建了一个用于监视的用户脚本,但它不起作用。

    分辨率

    检查脚本中的参数数。限制是 512。具有超过 512 个参数的脚本可能无法正常工作。使用 CLI 中的 nsumon-debug.pl 脚本来调试脚本。

  • 问题

    我看到很多监视器探测器,它们似乎不必要地增加了网络流量。有没有办法关闭监视器探头?

    分辨率

    您可以通过禁用监视器或将设置服务命令中的 HealthMonitor 参数的值设置为 NO 来关闭监视器探测连接。使用 NO 选项,设备会始终将服务显示为 UP。

  • 问题

    我已经为服务设置了监视器,但连接仍然定向到关闭的服务器。

    分辨率

    您可能需要缩短监视器探头间隔。Citrix ADC 设备在监视器发送探测器之前不会检测到关闭状态。

  • 问题

    绑定到监视器的衡量指标存在于本地和自定义衡量指标表中。

    分辨率

    如果从本地衡量指标表中选择了衡量指标,则将本地前缀添加到衡量指标名称。但是,如果从自定义表中选择了衡量指标,则无需添加任何前缀。

  • 问题

    对服务的监视器探测未到达服务。

    分辨率

    检查是否对服务的连接数设置了限制。如果是,则通过将 MonitorSkipmaxClient 参数设置为“启用”,从此限制中免除监视器-探测器连接。

  • 问题

    我能够 ping 服务器,但服务的状态始终显示为 Down。

    分辨率

    检查已配置的监视器类型。例如,如果未为 SSL 配置服务器并且您使用 HTTPS 监视器,则服务的状态将标记为“向下”。在这种情况下,使用 TCP 监视器应该将服务的状态更改为 UP。

  • 问题

    为负载监视器设置权重无助于确定服务状态。

    分辨率

    负载监视器无法决定服务的状态。因此,在负载监视器上设置权重是不合适的。

  • 问题

    服务不稳定。

    分辨率

    考虑对以下组件进行故障排除:

    • 验证正确的服务器绑定到该服务。
    • 验证绑定到服务的监视器类型。
    • 验证显示器失败的原因。您可以从“服务”页面打开服务,并在“配置服务”对话框的“监视器”选项卡中验证监视器的探测数、故障和上次响应状态的详细信息。要显示详细信息,请单击已配置的监视器。
    • 如果是自定义监视器,请将 TCP 或 ping 监视器绑定到服务并验证监视器的状态。如果这样可以解决问题,则自定义监视器出现一些问题,监视器需要进一步调查。
    • 您可以在 Citrix ADC 设备上记录数据包跟踪,并验证监视器探测和服务器响应,以便进一步调查。
  • 问题

    虚拟 IP (VIP) 地址不稳定或其状态显示为“关闭”。

    分辨率

    考虑对以下组件进行故障排除:

    • 验证负载平衡功能是否已获得许可。
    • 验证功能是否已启用。
    • 验证适当的服务是否绑定到虚拟服务器。
    • 如果 VIP 地址的状态显示为“向下”,请验证管理员是否已启用该服务。如果不是,则服务的状态应为“服务外”。在这种情况下,您必须启用该服务并验证问题是否得到解决。
    • 验证绑定到虚拟服务器的服务,并完成针对服务不稳定问题提到的故障排除步骤。
    • 如果 VIP 地址不稳定,绑定到虚拟服务器的所有服务都应失败。因此,验证所有服务是否同时失败。如果是这样,则 Citrix ADC 设备与服务器之间存在网络问题。
  • 问题

    该网站遇到负载均衡不均衡的情况。

    分辨率

    考虑对以下组件进行故障排除:

    • 验证设备上配置的负载平衡方法。

    • 验证与服务关联的权重是否符合预期。

    • 如果负载平衡方法不是循环方法,请验证 newnslog 文件中记录到服务器的连接数。您可以运行以下命令来验证 newnslog 文件上的编号:

      # nsconmsg –K <newnslog_file> -s ConLb=2 –d oldconmsg

      验证特定虚拟服务器的服务,并检查响应时间、打开已建立的连接 (OE)、点击量、持久性命中率和持久性率 (P),以进一步解决问题。

    • 如果负载平衡方法是循环方法,请验证上一步中提到的持久点击。此外,验证服务是否不稳定。如果不是,请完成针对服务不稳定问题提到的故障排除步骤

    • 验证设备上是否配置了持久性。

    • 验证是否有任何服务不稳定。如果是,请完成针对服务不稳定问题提到的故障排除步骤。

  • 问题

    服务状态显示为“关闭”。

    分辨率

    考虑对以下组件进行故障排除:

    • 验证是否配置了 SNIP 或 MIP 地址。
    • 验证相应的监视器是否绑定到该服务。
    • 如果自定义监视器绑定到服务,请将 TCP 或 ping 监视器绑定到服务,并验证监视器的状态。如果这样可以解决问题,则自定义监视器出现一些问题,监视器需要进一步调查。
    • 验证在另一子网中的服务器的服务状态是否显示为“向下”。如果是,请验证“使用子网 IP (USNIP)”是否解决了问题,因为这可能是由于 MIP 地址无法与服务器通信。
  • 问题

    响应时间存在问题。

    分辨率

    考虑对以下组件进行故障排除:

    • 通过运行以下命令验证服务统计信息中的服务器响应时间:

      # nsconmsg –K <newnslog_file> -s ConLb=2 –d oldconmsg

    • 检查服务不稳定和服务状态显示为关闭问题。

  • 问题

    其中一个服务器比其他负载平衡服务器提供更多的请求。

    分辨率

    考虑对以下组件进行故障排除:

    • 验证负载平衡方法。使用轮询方法均匀分发客户端请求,无论服务器上的负载如何。
    • 确定是否为负载平衡配置启用持久性。如果启用了持久性,则给定的服务器可能会承载较重的负载来维护其会话,特别是如果持久性会话很长。
    • 验证权重是否分配给每个服务。分配适当的权重有助于适当的荷载分布。
  • 问题

    与特定负载平衡服务器的连接处于停顿状态。例如,与一个 Outlook 服务器的所有连接可能会停止。

    分辨率

    考虑对以下组件进行故障排除:

    • 验证负载平衡方法。如果是轮循环,请考虑将方法更改为最小连接。
    • 考虑缩短监视器超时时间。较短的超时期有助于更快地将服务标记为“关闭”,这将有助于将流量引导到正常运行的服务器。
    • 如果连接处于长时间停滞状态,则可能会生成冲浪队列。考虑刷新冲浪队列,以避免服务器上的负载突然高峰。
    • 如果服务器处于最高级别,请考虑添加新服务器以获得更好的性能。
  • 问题

    大多数连接被定向到特定服务器,即使配置了用于负载平衡的最少连接方法也是如此。

    分辨率

    确定是否配置了持久性并且是源 IP 类型。如果即使使用最少连接方法也配置了源 IP 持久性,请求将转到特定服务器。维护会话信息需要服务器的 IP 地址。考虑使用基于 HTTP Cookie 的持久性。

  • 故障排除 提示有关其他问题,请考虑以下提示解决上述未列出的问题:

    • 如果将多个负载监视器绑定到一个服务,则服务上的负载是绑定到该服务的负载监视器上所有值的总和。要使负载平衡正常工作,必须将同一组监视器绑定到所有服务。
    • 如果禁用绑定到服务的负载监视器,并且该服务绑定到虚拟服务器,则虚拟服务器将使用轮询方法进行负载平衡。
    • 当您将服务绑定到负载平衡方法为 CLOAD 且服务状态为 UP 的虚拟服务器时,虚拟服务器将使用初始轮询方法进行负载平衡。如果服务没有自定义负载监视器,或者至少有一个自定义负载监视器的状态不是 UP,则它将继续处于轮循环状态。
    • 绑定到负载平衡方法为 CLOAD 的虚拟服务器的所有服务,服务必须绑定到它们的负载监视器。
    • 自定义负载平衡方法也遵循启动轮询。
    • 如果禁用基于指标的绑定,并且这是最后一个活动指标,则特定虚拟服务器将使用轮询方法进行负载平衡。通过将指标阈值设置为零,将禁用指标。
    • 当绑定到监视器的衡量指标超过阈值时,不考虑该特定服务进行负载平衡。如果所有服务都达到阈值,则虚拟服务器将使用轮询方法进行负载平衡,并显示错误消息“5xx-服务器忙错误”。
    • 自定义表中最多可以绑定 10 个指标到监视器。
    • OID 必须是标量变量。
    • 为了成功地进行负载平衡,间隔必须尽可能低。如果间隔较高,则检索负载值的时间段将增加。因此,负载平衡是使用不正确的值进行的。
    • 用户无法修改本地表。