[Samba] Samba 4 slow write
Ervin Hegedüs
airween at gmail.com
Wed Apr 22 04:43:40 MDT 2015
Dear Jones,
many-many thanks for your answers, and for your times...
On Wed, Apr 22, 2015 at 04:50:42PM +0800, Jones Syue wrote:
> Hello Ervin,
>
>
> > Do you mean that this is the "normal" way? These geteuid and
> > getegid system calls are so slow?
> >
>
> >> % time seconds usecs/call calls errors syscall
> >>
> ------ ----------- ----------- --------- --------- ----------------
> >>
> 15.68 15.894980 4 4398791 getegid
> >> 15.57 15.783699 4 4398801 geteuid
>
> Hmm yeap
> as earlier mentioned,
> both system calls are top 2 and more than 30% during compiling.
>
> As
> 'perf top' call graph depicted,
> gete{uid, gid} will go through samba stacks, glibc,
> and syscalls to reach kernel finally,
> this critical path spent time on stack push-pop, context switches, etc.
yes, that's clear for me,
> > On the previous system (Debian Wheezy, Samba 3) I've also used
> > ACL's, but there were much faster than this...
> >
> > What should be the solution? Do you have any idea?
> >
>
> Hmm my guess the difference is made by in-memory cache lookup[1],
> samba-3 with it.
> But samba-4 without it,
> so non-admin users reach gete{uid, gid} heavily,
> admin users could ease this pain because earlier return by
> get_current_uid().
ok, this is new for me - but I don't know, what can I do now...
> Here is my test to imply this guess,
> test-bench is uploading 5,000 files and each one is 1MB.
>
> Case A) samba-3.6.25 without modification,
> strace show nothing through gete{uid, gid},
> and spent 85 seconds on uploading.
>
> Case B) Remove cache lookup from samba-3.6.25,
> strace show syscalls to gete{uid, gid},
> and spent 100 seconds on uploading.
this isn't a relevant different, the elapsed time increased by
25% about - but in my case, the elapsed time increased by more,
that 1000%... (the compile time was about 8 seconds - take a look
it as 10 secs - on Samba 3, on Samba 4 that's about 100 secs).
So, the big question is what can I do now? There isn't Samba 3
package in Ubuntu, so I can't downgrade it :(.
Thanks,
Ervin
More information about the samba
mailing list