在为存储设备使用 HPP 时,设置该设备的延迟敏感阈值,使 I/O 可以绕过 I/O 调度程序。
默认情况下,ESXi 通过 I/O 调度程序传递每个 I/O。但是,使用调度程序可能会创建内部队列,这不是利用高速存储设备的有效方法。
您可以配置延迟敏感阈值并启用直接提交机制,帮助 I/O 绕过调度程序。若启用此机制,则 I/O 会通过 HPP 直接从 PSA 传递到设备驱动程序。
要顺利执行直接提交,观察到的平均 I/O 延迟必须低于您指定的延迟阈值。如果 I/O 延迟超过延迟阈值,系统会停止直接提交,并暂时恢复到使用 I/O 调度程序。当平均 I/O 延迟再次下降至低于延迟阈值时会恢复直接提交。
可以为一系列 HPP 声明的设备设置延迟阈值。使用供应商和型号对、控制器型号或者 PCIe 供应商 ID 和子供应商 ID 对,设置延迟阈值。
过程
- 通过运行以下命令,设置设备的延迟敏感阈值:
esxcli storage core device latencythreshold set -t value in milliseconds
使用下列选项之一。
选项 |
示例 |
供应商/型号 |
为具有指定供应商和型号的所有设备设置延迟敏感阈值参数:esxcli storage core device latencythreshold set -v 'vendor1' -m 'model1' -t 10 |
NVMe 控制器型号 |
为具有指定控制器型号的所有 NVMe 设备设置延迟敏感阈值:esxcli storage core device latencythreshold set -c 'controller_model1' -t 10 |
PCIe 供应商/子供应商 ID |
为 PCIe 供应商 ID 为 0x8086 和 PCIe 子供应商 ID 为 0x8086 的设备设置延迟敏感阈值。esxcli storage core device latencythreshold set -p '8086' -s '8086' -t 10 |
- 确认延迟阈值已设置:
esxcli storage core device latencythreshold list
Device Latency Sensitive Threshold
-------------------- ---------------------------
naa.55cd2e404c1728aa 0 milliseconds
naa.500056b34036cdfd 0 milliseconds
naa.55cd2e404c172bd6 50 milliseconds
- 监控延迟敏感阈值的状态。检查以下条目的 VMkernel 日志:
Latency Sensitive Gatekeeper turned on for device 设备. Threshold of XX msec is larger than max completion time of YYY msec
Latency Sensitive Gatekeeper turned off for device 设备. Threshold of XX msec is exceeded by command completed in YYY msec