[large-scale][cinder] backend_native_threads_pool_size option with rbd backend

Arnaud Morin arnaud.morin at gmail.com
Wed Jul 6 09:11:41 UTC 2022


Yes, I was talking about rbd_exclusive_cinder_pool.
It was false by default on our side because we are still running cinder
stein release :(

Thank you for the answer about the calculation methods!
Do you mind if I copy paste your answer to the large-scale
documentaiton ([1])?

Cheers,
Arnaud.

[1] https://docs.openstack.org/large-scale/

On 06.07.22 - 10:20, Gorka Eguileor wrote:
> On 05/07, Arnaud wrote:
> > Hey,
> >
> > Thanks for your answer!
> > OK, I understand the why ;) also because we hit some issues on our deployment.
> > So we increase the number of threads to 100 but we also enable the deferred deletion (keeping in mind the quota usage downsides that it brings).
> 
> Hi Arnaud,
> 
> Deferred deletion should reduce the number of required native threads
> since delete calls will complete faster.
> 
> 
> > We also disabled the periodic task to compute usage and use the less precise way from db.
> 
> Are you referring to the 'rbd_exclusive_cinder_pool' configuration
> option?  Because that should already have the optimum default (True
> value).
> 
> 
> > First question here: do you think we are going the right path?
> >
> > One thing we are not yet sure is how to calculate correctly the number of threads to use.
> > Should we do basic math with the number of deletion per minutes? Or should we take the number of volumes in the backend into account? Something in the middle?
> 
> Native threads on the RBD driver are not only used for deletion, they
> are used for *all* RBD calls.
> 
> We haven't defined any particular method to calculate the optimum number
> of threads on a system, but I can think of 2 possible avenues to
> explore:
> 
> - Performance testing: Run a set of tests with a high number of
>   concurrent requests and different operations and see how Cinder
>   performs.  I wouldn't bother with individual attach and detach to VM
>   operations because those are noops on the Cinder side, creating volume
>   from image with either different images or cache disabled would be
>   better.
> 
> - Reporting native thread usage: To really know if the number of native
>   threads is sufficient or not you could modify the Cinder volume
>   manager (and possibly also eventlet.tpool to gather statistics on the
>   number of used/free native threads and number of queued requests that
>   are waiting for a native thread to pick them up.
> 
> Cheers,
> Gorka.
> 
> >
> > Thanks!
> >
> > Arnaud
> >
> >
> >
> > Le 5 juillet 2022 18:06:14 GMT+02:00, Rajat Dhasmana <rdhasman at redhat.com> a écrit :
> > >Hi Arnaud,
> > >
> > >We discussed this in last week's cinder meeting and unfortunately we
> > >haven't tested it thoroughly so we don't have any performance numbers to
> > >share.
> > >What we can tell is the reason why RBD requires a higher number of native
> > >threads. RBD calls C code which could potentially block green threads hence
> > >blocking the main operation therefore all of the calls in RBD to execute
> > >operations are wrapped to use native threads so depending on the operations
> > >we want to
> > >perform concurrently, we can set the value of
> > >backend_native_threads_pool_size for RBD.
> > >
> > >Thanks and regards
> > >Rajat Dhasmana
> > >
> > >On Mon, Jun 27, 2022 at 9:35 PM Arnaud Morin <arnaud.morin at gmail.com> wrote:
> > >
> > >> Hey all,
> > >>
> > >> Is there any recommendation on the number of threads to use when using
> > >> RBD backend (option backend_native_threads_pool_size)?
> > >> The doc is saying that 20 is the default but it should be increased,
> > >> specially for the RBD driver, but up to which value?
> > >>
> > >> Is there anyone tuning this parameter in their openstack deployments?
> > >>
> > >> If yes, maybe we can add some recommendations on openstack large-scale
> > >> doc about it?
> > >>
> > >> Cheers,
> > >>
> > >> Arnaud.
> > >>
> > >>
> 



More information about the openstack-discuss mailing list