Throttle Host Storage IO via Host HBA Queue Depth Settings?

Hi All,

General question.   Can a host's initiator HBA queue depth setting be used to throttle the amount of IO it will throw at an array?    

We have one particularly "noisy" physical Windows host that generates very heavy read FCP load on our Netapp during its batch cycles.  There seems to be some indication that we can tweak this Windows host's HBA queue depth to effectively throttle the host.   I believe the host is using a Qlogic QLA2460 HBA.  The SAN Surfer setting to change the queue depth at the host is called "Execution Throttle."   The default value of the "Execution Throttle" is 16.   Just wondering if dropping this to 8 will "throttle down" this host a bit?   I understand it should also reduce stroage performance for that particular host.   

We are not seeing any queue full errors on the array so I dont believe that to be an issue.   We just want to throttle this host down and are looking to do that through the host HBA queue depth (Execution Throttle) setting.  


Re: Throttle Host Storage IO via Host HBA Queue Depth Settings?


I would not attempt to use the queue depth as a throttle. The correct way to do this would be through Storage QoS in Data ONTAP 8.2.

Is there a performance issue being caused by this host being busy? If not, then I'd leave it. I'm not sure why you'd want to introduce a performance bottleneck (especially since using a queue depth to choke a host may take a LONG time for a future admin to find during troubleshooting).

Re: Throttle Host Storage IO via Host HBA Queue Depth Settings?

Storage QoS would be nice but we are currently at 8.1.2P4 which doesnt offer Storage QoS to my knowledge.  We are also still using 7-mode and my understanding is that Storage QoS is only available with Clustered ONTAP 8.2.   8.2 is a ways off for us.

The rationale behind looking into host HBA queue depth is because this particular host is the "noisy neighbor" on the array.    In other words, when this particular host gets busy during batch cycles the other workloads on the filer suffer in the form of increased latency.   Without Storage QoS, the only options I am aware of to throttle this host is to use the queue depth settings at the host HBA.     I do agree however - not ideal and it may take somebody time to figure out why performance is slow for that particular host.

Questions still remains - will reducing the queue depth of the Qlogic HBA at the host effectively "throttle down" the hosts workload on the storage array?   As johanbell pointed out, it is not the most elegant solution so I'd love to hear other options for throttling down a host if there are any!