linux-raid.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [patch 0/3 v2] raid5: make stripe handling multi-threading
@ 2013-08-12  2:18 Shaohua Li
  2013-08-12  2:18 ` [patch 1/3 v2] raid5: offload stripe handle to workqueue Shaohua Li
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Shaohua Li @ 2013-08-12  2:18 UTC (permalink / raw)
  To: linux-raid, linux-kernel; +Cc: neilb, djbw, tj

Neil,

This is another attempt to make raid5 stripe handling multi-threading.
Recent workqueue improvement for unbound workqueue looks very promising to the
raid5 usage. I had details in the first patch.

The patches are against your tree with patch 'raid5: make release_stripe
lockless' and 'raid5: fix stripe release order' but without 'raid5: create
multiple threads to handle stripes'

My test setup has 7 PCIe SSD, chunksize 8k, stripe_cache_size 2048. If enabling
multi-threading, group_thread_cnt is set to 8.

randwrite	throughput(ratio) unpatch/patch		requestsize(sectors) unpatch/patch
4k		1/5.9					8/8
8k		1/5.5					16/13
16k		1/4.8					16/13
32k		1/4.6					18/14
64k		1/4.7					17/13
128k		1/4.2					23/16
256k		1/3.5					41/21
512k		1/3					75/28
1M		1/2.6					134/34

For example, in 1M randwrite test, patched kernel is 2.6x faster, but average
request sending to each disk is drop to 34 sectors from 134 sectors long.

Currently the biggest problem is request size is dropped, because there are
multiple threads dispatching requests. This indicates multi-threading might not
be proper for all setup, so I disable it by default in this version. But since
throughput is largly improved, I thought this isn't a blocking issue. I'm still
working on improving this, maybe schedule stripes from one block plug as a
whole.

Thanks,
Shaohua

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2013-08-27  7:34 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-08-12  2:18 [patch 0/3 v2] raid5: make stripe handling multi-threading Shaohua Li
2013-08-12  2:18 ` [patch 1/3 v2] raid5: offload stripe handle to workqueue Shaohua Li
2013-08-12  2:18 ` [patch 2/3 v2] raid5: sysfs entry to control worker thread number Shaohua Li
2013-08-12  2:18 ` [patch 3/3 v2] raid5: only wakeup necessary threads Shaohua Li
2013-08-27  7:34 ` [patch 0/3 v2] raid5: make stripe handling multi-threading NeilBrown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).