How can I find out, from the operating system, the maximum parallel queue a device can handle?
I mean, I want to discover how many operations I can enueue on storage in parallel, and so far I do this using
In the above the queue length is handling 9 requests.
This is a poor approach according to me because (i) I could miss the real value and (ii) I'm not sure the qlen field is the device queue and not the kernel queue.
Suggestions?
I mean, I want to discover how many operations I can enueue on storage in parallel, and so far I do this using
iostat
: I start the program and execute a banchmarking (e.g., bonnie++
) and try to catch the max value in the qlen field:
Code:
% iostat -d -x -t da -w 2
...
device kw/s ms/r ms/w ms/o ms/t qlen %b
ada0 70988.4 0 10 0 10 9 80
In the above the queue length is handling 9 requests.
This is a poor approach according to me because (i) I could miss the real value and (ii) I'm not sure the qlen field is the device queue and not the kernel queue.
camcontrol
should be the right tool to use, I suspect, but I think it starts with "default" sensible values:
Code:
% sudo camcontrol tags da0 -v
...
(pass4:mpt0:0:0:0): mintags 2
(pass4:mpt0:0:0:0): maxtags 255
Suggestions?