[Samba] Samba 4 slow write

Jones Syue jonessyue at qnap.com
Thu Apr 23 04:05:42 MDT 2015


Hello Ervin,

The in-memory cache lookup could be added back into
samba-4.1.6 by applying the attached patch,
if it could be compiled with Louis how-to steps,
perhaps got the chance to make U14.04 be stayed on samba-4.

Here is my test,
the test-bench is uploading 5000 files and each one is 1MB.
The attached patch could improve 15% at case B).

Case A) Original samba-4.1.6
will go through gete{uid, gid},
and takes 100 seconds to finish the uploading.

Case B) Original samba-4.1.6 with patch
will not go through gete{uid, gid},
and takes 85 seconds to finish the uploading.

[A]
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 48.67    0.325333           2    165093           poll
 24.18    0.161620           0    681677           read
  7.58    0.050682           0    596650           write
  4.43    0.029612           0   3753979           fcntl64
  2.12    0.014164           0    165067           writev
  2.00    0.013335           0    330139           readv
  1.11    0.007445           0   1615613           geteuid32
  1.09    0.007303           0   1615588           getegid32
  1.03    0.006913           0    175074           open
  0.83    0.005579           0     85025           fchmod
  0.79    0.005256           0    520322           gettimeofday
  0.74    0.004979           0    175924           close
  0.63    0.004191           0    680256           setresuid32
  0.60    0.004014           0    680256           setresgid32
  0.52    0.003494           0    510193           setgroups32
  0.51    0.003440           0    256181    145062 getxattr
  0.46    0.003105           0    170051    170050 lstat64
  0.45    0.003002           0    210137        10 stat64
  0.33    0.002217           0    170052           munmap
  0.30    0.002021           0    340100           alarm
  0.30    0.002002           0    425125           getgroups32
  0.28    0.001896           0    250052           _llseek
  0.28    0.001849           0    170052           mmap2
  0.25    0.001682           0    340100           rt_sigaction
  0.18    0.001208           0    200097           fstat64
  0.13    0.000878           0     25001           setxattr
  0.09    0.000602           0     15000           SYS_320
  0.03    0.000227           0     30000     20000 flock
  0.03    0.000194           0      5000           ftruncate64
  0.01    0.000067           0      6110           fstatat64
  0.01    0.000050           0       850       850 connect
  0.00    0.000032           0       850           socket
  0.00    0.000022           0      5025           clock_gettime
  0.00    0.000005           0        16           umask
  0.00    0.000000           0         1           restart_syscall
  0.00    0.000000           0         7           chdir
  0.00    0.000000           0         1           time
  0.00    0.000000           0        10           lseek
  0.00    0.000000           0         3           brk
  0.00    0.000000           0         1           ioctl
  0.00    0.000000           0         8           dup2
  0.00    0.000000           0         3           getcwd
  0.00    0.000000           0        58           getdents64
  0.00    0.000000           0         1           statfs64
------ ----------- ----------- --------- --------- ----------------
100.00    0.668419              14370748    335972 total

[B]
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
 43.37    0.179108           1    165094           poll
 30.78    0.127108           0    583223           read
 12.26    0.050613           0    583220           write
  3.16    0.013041           0   1567707           fcntl64
  2.93    0.012118           0    165054           writev
  2.47    0.010192           0    330138           readv
  1.36    0.005609           1      5019           close
  1.11    0.004604           0    520270           gettimeofday
  0.67    0.002775           0    256181    145062 getxattr
  0.53    0.002182           0    210091         3 stat64
  0.42    0.001715           0      5019           open
  0.30    0.001255           0     80004           _llseek
  0.15    0.000600           0     25001           setxattr
  0.14    0.000575           0     27275           brk
  0.13    0.000521           0     15000           SYS_320
  0.07    0.000284           0      5018           ftruncate64
  0.05    0.000190           0     30048           fstat64
  0.04    0.000161           0     30000     20000 flock
  0.03    0.000108           3        40           munmap
  0.02    0.000100           2        58           getdents64
  0.02    0.000064           0      6110           fstatat64
  0.01    0.000033           0      5005           clock_gettime
  0.00    0.000010           0       327           pwrite64
  0.00    0.000006           0        35           setresgid32
  0.00    0.000000           0         1           restart_syscall
  0.00    0.000000           0         5           chdir
  0.00    0.000000           0         1           time
  0.00    0.000000           0        10           lseek
  0.00    0.000000           0         4           alarm
  0.00    0.000000           0         1           ioctl
  0.00    0.000000           0         2           umask
  0.00    0.000000           0         1           dup2
  0.00    0.000000           0         1           fchmod
  0.00    0.000000           0         4           rt_sigaction
  0.00    0.000000           0         3           getcwd
  0.00    0.000000           0        40           mmap2
  0.00    0.000000           0         3         2 lstat64
  0.00    0.000000           0        80           geteuid32
  0.00    0.000000           0        74           getegid32
  0.00    0.000000           0         5           getgroups32
  0.00    0.000000           0        25           setgroups32
  0.00    0.000000           0        35           setresuid32
  0.00    0.000000           0         1           statfs64
------ ----------- ----------- --------- --------- ----------------
100.00    0.412972               4615233    165067 total

--
Regards,
Jones Syue | 薛懷宗
QNAP Systems, Inc.


More information about the samba mailing list