主机HBA卡最大并发数不足
HBA卡并发数表示HBA卡限制每个LUN能同时传输的I/O数目。在高并发的业务场景下,通常会出现由于HBA卡和块设备的并发数不足,导致性能低下的现象。
Windows主机
对于Windows操作系统,大部分HBA卡并发数默认为128,但也不排除某些版本的HBA卡驱动的默认并发数较小,例如Windows 2012 R2版本下,Emulex某型号的HBA卡的默认并发为32。当HBA卡并发数不够会导致主机压力不能完全传递到存储上,出现主机侧时延和存储侧时延相差较大时,用户可以通过HBA卡厂商提供的管理软件查询当前HBA卡的并发数,并对其进行适当的修改。
Linux主机
对于Linux操作系统,HBA卡的队列参数与卡类型和驱动程序相关,请参考HBA厂商给出的规格值,如Qlogic 8Gbps FC双口HBA卡,限制每个LUN的最大队列深度为32。如果发现主机侧时延和存储侧时延相差较大,可以通过iostat命令观察是否达到并发的瓶颈。
观察“avgqu-sz”项,即LUN对应的块设备的平均队列深度,如果长时间保持在数十以上,说明可能由于并发的限制,导致I/O堆积在主机的块设备层,而没有真正将主机压力下发到存储侧,此时用户可以考虑将HBA的并发数进行适当的修改。