跳到主要内容

计算队列深度

可能需要调整主机上的 FC 队列深度才能达到每个节点和 FC 端口扇入的 ITN 的最大值。可连接到 FC 端口的最大 LUN 数和 HBA 数受到 FC 目标端口上的可用队列深度的限制。

关于本任务

队列深度是一个存储控制器上同时可排队的 I/O 请求(SCSI 命令)数量。每个从主机的发起方 HBA 到存储控制器的目标适配器的 I/O 请求占用一个队列条目。通常情况下,队列深度越大,性能越佳。但是,如果达到了存储控制器的最大队列深度,存储控制器将拒绝传入的命令,方法是将 QFULL 响应返回给这些命令。如果大量主机访问存储控制器,应细心规划,以避免出现 QFULL 情况,因为在某些系统上这种情况会显著影响系统性能,并且可能导致出错。

在具有多个发起方(主机)的配置中,所有主机的队列深度应类似。因为通过同一个目标端口连接到存储控制器的主机之间队列深度不相等,所以队列深度较大的主机将夺去队列深度较小的主机的资源访问权限。

可创建以下有关调整队列深度的常规建议:

  • 对于小型到中型系统,请使用 HBA 队列深度 32。

  • 对于大型系统,请使用 HBA 队列深度 128。

  • 对于例外情况或性能测试,请使用队列深度 256 避免可能发生的排队问题。

  • 所有主机均应将队列深度设置为类似值,以便为所有主机提供同等的访问权限。

  • 要避免性能处罚或错误,不得超过存储控制器目标 FC 端口队列深度。

  1. 计算所有主机中连接到一个 FC 目标端口的 FC 发起方总数。
  2. 乘以 128。
    • 如果结果小于 2,048,请将所有发起方的队列深度设置为 128。

    示例

    有 15 个主机,这些主机有一个发起方连接到存储控制器上两个目标端口中的每一个。15 × 128 = 1,920.因为 1,920 比 2,048 这一总队列深度限制小,所以可以将所有发起方的队列深度设置为 128。
    • 如果结果比 2048 大,请转至步骤 3

    示例

    有 30 个主机,这些主机有一个发起方连接到存储控制器上两个目标端口中的每一个。30 × 128 = 3,840.因为 3840 比 2048 这一总队列深度限制大,所以应在步骤 3 下选择一个选项进行弥补。
  3. 选择以下选项之一向存储控制器添加更多主机。
    • 选项 1:
      1. 添加更多 FC 目标端口。

      2. 重新分发 FC 发起方。

      3. 重复步骤

        12

    示例

    所需队列深度 3,840 超过了每个端口的可用队列深度。要纠正这个问题,可向每个控制器添加一个双端口 FC 目标适配器,然后为 FC 交换机重新分区,以便让 30 个主机中的 15 个连接到一组端口,其余 15 个主机连接到第二组端口。然后,每个端口的队列深度将减小到 15 × 128 = 1,920。
    • 选项 2:
      1. 根据每个主机的预期 I/O 需求将这些主机指定为大型小型

      2. 将大型发起方数量乘以 128。

      3. 将小型发起方数量乘以 32。

      4. 将两个结果相加。

      5. 如果结果比 2,048 小,则将大型主机的队列深度设置为 128,将小型主机的队列深度设置为 32。

      6. 如果结果仍然比每个端口的 2,048 大,则减少每个发起方的队列深度,直到总队列深度小于或等于 2,048。

        要估计达到特定每秒 I/O 吞吐量所需队列深度,请使用以下公式:

        所需队列深度 =(每秒 I/O 数)×(响应时间)

        例如,如果需要每秒 I/O 数为 40,000,响应时间为 3 毫秒,则需要的队列深度 = 40,000 ×(.003)= 120。

    如果决定将队列深度限制为基本建议值 32,则可连接到目标端口的最大主机数为 64。但是,如果决定队列深度为 128,则可将最多 16 个主机连接到一个目标端口。队列深度越大,单个目标端口可支持的主机越少。如果您对队列深度的要求不可妥协,则应获取更多目标端口。

    示例

    所需队列深度 3,840 超过了每个端口的可用队列深度。您有 10 个具有高存储 I/O 需求的大型主机,以及 20 个具有低 I/O 需求的小型主机。将大型主机的发起方队列深度设置为 128,将小型主机的发起方队列深度设置为 32。

    总队列深度结果为(10 × 128)+(20 × 32)= 1,920。

    示例

    可将可用队列深度平均分配给每个发起方。

    每个发起方的队列深度结果为 2,048 ÷ 30 = 68。