On Wed, Jul 13, 2016 at 02:35:08AM -0400, Garland McAlexander wrote:> CIFS is single threaded, if you plan on using it with a large amount ofOh, "my" cifs as a protocol is multi-threaded. It's part of the Samba implementation that is single threaded. However, for large file I/O Samba is multi-threaded. Volker
Sorry, I should have clarified I meant in use with Samba. On Wed, Jul 13, 2016 at 11:41 AM, Volker Lendecke <vl at samba.org> wrote:> On Wed, Jul 13, 2016 at 02:35:08AM -0400, Garland McAlexander wrote: > > CIFS is single threaded, if you plan on using it with a large amount of > > Oh, "my" cifs as a protocol is multi-threaded. It's part of the Samba > implementation that is single threaded. However, for large file I/O > Samba is multi-threaded. > > Volker >-- *Sincerely,* *Garland McAlexander* *O: 212-271-0198* *C: 321-315-9948*
2016-07-13 17:41 GMT+02:00 Volker Lendecke <vl at samba.org>:> On Wed, Jul 13, 2016 at 02:35:08AM -0400, Garland McAlexander wrote: > > CIFS is single threaded, if you plan on using it with a large amount of > > Oh, "my" cifs as a protocol is multi-threaded. It's part of the Samba > implementation that is single threaded. However, for large file I/O > Samba is multi-threaded. > >Does that means when some has to be transfered by Samba, Samba check the file size and if that size is greater than a given size, samba forks itself to have a separated process managing the transfer of that big file? Sorry, I understand quickly only if explanation are long : ) And then, if I was right, what is the threshold size? Cheers> Volker > > -- > To unsubscribe from this list go to the following URL and read the > instructions: https://lists.samba.org/mailman/options/samba >
On Wed, Jul 13, 2016 at 05:41:17PM +0200, Volker Lendecke wrote:> On Wed, Jul 13, 2016 at 02:35:08AM -0400, Garland McAlexander wrote: > > CIFS is single threaded, if you plan on using it with a large amount of > > Oh, "my" cifs as a protocol is multi-threaded. It's part of the Samba > implementation that is single threaded. However, for large file I/O > Samba is multi-threaded.This ^^^^ :-). For operations that matter (read/write/fsync) Samba is multi-threaded. Volker wrote most of it, so I'd believe him here :-).
On Wed, Jul 13, 2016 at 05:59:56PM +0200, mathias dufresne wrote:> 2016-07-13 17:41 GMT+02:00 Volker Lendecke <vl at samba.org>: > > > On Wed, Jul 13, 2016 at 02:35:08AM -0400, Garland McAlexander wrote: > > > CIFS is single threaded, if you plan on using it with a large amount of > > > > Oh, "my" cifs as a protocol is multi-threaded. It's part of the Samba > > implementation that is single threaded. However, for large file I/O > > Samba is multi-threaded. > > > > > Does that means when some has to be transfered by Samba, Samba check the > file size and if that size is greater than a given size, samba forks itself > to have a separated process managing the transfer of that big file? Sorry, > I understand quickly only if explanation are long : ) > > And then, if I was right, what is the threshold size?It's a per-request decision directed by "aio read size" and "aio write size". The only sensible values are 0 (no multi-threaded behaviour) and 1 (go multi-threaded for all read/write requrests). It's not a per-file decision. Volker
On Wed, Jul 13, 2016 at 05:59:56PM +0200, mathias dufresne wrote:> 2016-07-13 17:41 GMT+02:00 Volker Lendecke <vl at samba.org>: > > > On Wed, Jul 13, 2016 at 02:35:08AM -0400, Garland McAlexander wrote: > > > CIFS is single threaded, if you plan on using it with a large amount of > > > > Oh, "my" cifs as a protocol is multi-threaded. It's part of the Samba > > implementation that is single threaded. However, for large file I/O > > Samba is multi-threaded. > > > > > Does that means when some has to be transfered by Samba, Samba check the > file size and if that size is greater than a given size, samba forks itself > to have a separated process managing the transfer of that big file? Sorry, > I understand quickly only if explanation are long : )No. Samba internally has a threadpool. When a read/write request comes in, if it's greater than: aio read size aio write size then the read/write request is sent to the threadpool and done asynchronously.> And then, if I was right, what is the threshold size?It's per-request and the params above set it.