[sheepdog] [PATCH v2 05/10] work: try to create worker threads in worker_thread_request_done
MORITA Kazutaka
morita.kazutaka at lab.ntt.co.jp
Tue May 14 06:18:02 CEST 2013
At Tue, 14 May 2013 12:33:55 +0900,
MORITA Kazutaka wrote:
>
> At Tue, 14 May 2013 11:18:12 +0800,
> Liu Yuan wrote:
> >
> > On 05/13/2013 11:11 PM, MORITA Kazutaka wrote:
> > > Currently, even if the number of nodes is increased, the dynamic work
> > > queue doesn't create worker threads until new work is added to the
> > > queue. This tries to create threads just after the work queue detect
> > > that the cluster is expanded.
> >
> > Why expanding at queue_work() isn't enough? Nodes are rarely added, so
> > most of the time, expanding at queue_work() works fine. It looks much
> > cleaner if we can reduce expanding call to one.
>
> The reason I added this patch is that 'collie vdi check' calls all the
> queue_work() before setting nr_nodes in work_queue_request_done(), so
> there is no chance to extend the number of worker threads. Maybe,
> initializing nr_nodes in init_work_queue() is much better than this
> patch.
After removing this patch, I got much better performace.
Now 'collie vdi check' works 75 times faster than the current master
on 16 nodes sheepdog cluster.
Thanks,
Kazutaka
More information about the sheepdog
mailing list