[Samba 4.2] Why AIO at times, does not seem to work until I restart Samba?

Raj Kumar Sanpui raj.kumar.sanpui at gmail.com
Tue Mar 17 06:12:26 MDT 2015


Hello Samba developers,

I am using Samba 4.2 version and using the AIO support (read and write)
using the options mentioned in smb.conf.

I am copying files from a Linux machine via Samba to Windows. The files in
Linux are hosted on a fuse filesystem, hence copying is expected to be
relaatively slow, but using AIO i gained some performance gain.

The issue is:

I copy 1 file to Windows, no issues. works great, and i can browse my Linux
filesystem at speed in WIndows as the copy is going on.

I copy 2 files from Linux to Windows, and here I can no longer parallely
browse the Linux filesystem, and it keeps me waiting till the file starts
copying.

And here onwards, AIo no longer works, even if i try copying single file,
until I reload/restart Samba.

I enabled the debug mode to 10, and noticed AIO read is indeed scheduled:

{{{
[2015/03/17 17:13:50.774486, 10, pid=35950, effective(500, 500), real(500,
0), class=locking] ../source3/locking/locking.c:156(strict_lock_default)
  strict_lock_default: flavour = WINDOWS_LOCK brl start=0 len=1048576
unlocked for fnum 1717305446 file mytarfiles/index8.1.0-0.tar.gz
[2015/03/17 17:13:50.774534, 10, pid=35950, effective(500, 500), real(500,
0)] ../source3/smbd/aio.c:770(*schedule_smb2_aio_read*)
  smb2: scheduled aio_read for file mytarfiles/index8.1.0-0.tar.gz, offset
0, len = 1048576 (mid = 20000)
  smbd_smb2_request_pending_queue: req->current_idx = 1
        req->in.vector[0].iov_len = 0
        req->in.vector[1].iov_len = 0
        req->in.vector[2].iov_len = 64
        req->in.vector[3].iov_len = 48
        req->in.vector[4].iov_len = 1
        req->out.vector[0].iov_len = 4
        req->out.vector[1].iov_len = 0
        req->out.vector[2].iov_len = 64
        req->out.vector[3].iov_len = 8
        req->out.vector[4].iov_len = 0
}}}

This is how my smb.conf looks like:

{{{

[global]
       guest account = insite1
       kernel oplocks = no
       oplocks = no
       msdfs root = yes
       workgroup     = TEST-CIFS
       server string = "Test CIFS Archive"
       security      = user
       map to guest = Bad User
       syslog        = 0
       log level = 10

       max smbd processes = 15
       interfaces = eth* lo
       bind interfaces only = no
       aio read size = 1
       aio write size = 1
       use sendfile = true


[DCCAArchive]
        comment = DCCA Archive File System
        path = /opt/insiteone/fuse-mount/ifm
        read only = No
        case sensitive = yes
        public = yes
        writeable = yes
        create mask=0777
        guest ok = Yes

}}}

What's the issue here?

Thanks
kingsmasher1


More information about the samba-technical mailing list