如果 ESXi 主機對 LUN 產生的命令超過 LUN 佇列深度所允許的數量,則超出的命令會排入 VMkernel 佇列中。這會增加延遲時間,或是完成 I/O 要求所需的時間。

問題

主機完成 I/O 要求所需的時間更長,且虛擬機器會顯示效能不佳。

原因

這個問題可能是由於 LUN 佇列深度不足而造成的。SCSI 裝置驅動程式有一個名為 LUN 佇列深度的可設定參數,可確定向指定的 LUN 發出的命令中同時處於作用中狀態的數量。如果主機對 LUN 產生過多的命令,則超出的命令會排入 VMkernel 佇列中。

解決方案

  1. 如果所有虛擬機器中作用中命令的總和始終超出 LUN 深度,則會增加佇列深度。
    用於增加佇列深度的程序取決於主機使用的儲存裝置介面卡類型。
  2. 如果 LUN 上有多台虛擬機器處於作用中狀態,請變更 Disk.SchedNumReqOutstanding (DSNRO) 參數,使其與佇列深度值相符。