Re: Who does determine the number of requests that can be servingsimultaneously in a storage?

From: Yuehai Xu
Date: Fri Jan 07 2011 - 08:23:50 EST


On Fri, Jan 7, 2011 at 8:10 AM, Jens Axboe <axboe@xxxxxxxxx> wrote:
>
> Please don't top-post, thanks.

I am really sorry for that.

>
> On 2011-01-07 14:00, Yuehai Xu wrote:
>> I add a tracepoint so that I can get nr_sorted and in_flight[0/1] of
>> request_queue when request is completed, I consider nr_sorted as the
>> number of pending requests and in_flight[0/1] represent the number
>> serving in the storage. Does these two parameters stand for what I
>> mean?
>
> nr_sorted is the number of requests that reside in the IO scheduler.
> That means requests that are not on the dispatch list yet. in_flight is
> the number that the driver is currently handling. So I think your
> understanding is correct.
>
> If you look at where you added your trace point, there are already a
> trace point right there. I would recommend that you use blktrace, and
> then use btt to parse it. That will give you all sorts of queueing
> information.

Yes, but I notice that the original traces can't get nr_sorted and
in_flight[0/1] directly, so I just add few lines. The result is from
the blktrace, and I use blkparse to analysis it, it should be the same
as what you said about btt(I don't know it, sorry about that).

>
>> The test benchmark I use is postmark which simulates the email server
>> system, over 90% requests are small random write. The storage is Intel
>> M SSD. Generally, I think the number of in_flight[0/1] should be much
>> greater than 1, but the result shows that this value is almost 1 no
>> matter what I/O scheduler(CFQ/DEADLINE/NOOP) or
>> filesystem(EXT4/EXT3/BTRFS) it is. Is it normal?
>
> Depends, do you have more requests pending in the IO scheduler? I'm
> assuming you already verified that NCQ is active and working for your
> drive.
>

Yes, the nr_sorted(num of pending requests) remains around 100. hdparm
shows that the NCQ has been enabled.

Thanks,
Yuehai
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/