[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