Re: Linux disk performance.

From: Nick Piggin
Date: Tue Dec 19 2006 - 01:39:29 EST


Manish Regmi wrote:

Nick Piggin:

but
they look like they might be a (HZ quantised) delay coming from
block layer plugging.


Sorry i didn´t understand what you mean.

When you submit a request to an empty block device queue, it can
get "plugged" for a number of timer ticks before any IO is actually
started. This is done for efficiency reasons and is independent of
the IO scheduler used.

Use the noop IO scheduler, as well as the attached patch, and let's
see what your numbers look like.

Thanks,
Nick

--
SUSE Labs, Novell Inc.
Index: linux-2.6/block/ll_rw_blk.c
===================================================================
--- linux-2.6.orig/block/ll_rw_blk.c 2006-12-19 17:35:00.000000000 +1100
+++ linux-2.6/block/ll_rw_blk.c 2006-12-19 17:35:53.000000000 +1100
@@ -226,6 +226,8 @@ void blk_queue_make_request(request_queu
q->unplug_delay = (3 * HZ) / 1000; /* 3 milliseconds */
if (q->unplug_delay == 0)
q->unplug_delay = 1;
+ q->unplug_delay = 0;
+ q->unplug_thresh = 0;

INIT_WORK(&q->unplug_work, blk_unplug_work, q);