[Samba] Performance problem with utime() on Solaris 8
Scott Cokely
scott.cokely at skyworksinc.com
Mon Jul 30 22:34:54 GMT 2007
To all:
While updating our Samba installation from 2.2.5 to 3.0.25b, I found that
Samba's performance was severely degraded. A 1 gig test file with random text
in it would take about 2:15 to copy using the old 2.2.5 smbd, but the same file
would take 5-6 minutes to copy with a freshly compiled version.
I ran truss on smbd while the file copy was taking place, and found that the
utime() call was taking up most of the system time. I then ran truss on the
2.2.5 smbd, and found that there were no utime() calls at all. I went to the
archives, downloaded and built version 2.2.12, and found that the performance
was the same as 2.2.5. Same with version 3.0.0, and version 3.0.10.
However, version 3.0.11 is where the performance problems begin. So something
related to utime() changed between versions 3.0.10 and 3.0.11, and this change
has a major impact on the Solaris 8 build, GCC 2.95.3.
Here's the truss results for each version. First, 3.0.11, which takes about 6
minutes to run (Note: Calls with zero total seconds are snipped):
syscall seconds calls
------------------------------------
read 17.89 392497
time .36 17632
utime 179.76 17479
getgid .01 96
fcntl 2.43 52505
poll .55 17523
pwrite64 6.48 17477
send .95 17524
In this run, 85% of the system calls are the utime() call. And here's the same
1G file copy using version 3.0.10:
syscall seconds calls
read 15.03 390972
close .20 9
time .31 17603
utime .01 1
fcntl 1.99 52483
poll .52 17507
stat64 .24 36
fstat64 .11 19
pwrite64 5.83 17477
open64 .02 10
send .53 17507
Notice that the utime() call is almost nonexistent (1 call). This balance of
reads and writes is more of what I'd expect out of a Samba transfer.
I looked through the WHATSNEW.txt file in the 3.0.11 distribution, but couldn't
find an obvious answer to this problem (if it *is* a problem). So I'm throwing
this out to the group: What changed in version 3.0.11 that caused Samba to
spend 85% of its time in a utime() system call?
--
# Scott Cokely # The Internet interprets censorship
# (949)231-3742 # as damage, and routes AROUND it.
# include "std_disclaimer.pl"; #------------------------------------
# Quidquid latine dictum sit, altum viditur.
More information about the samba
mailing list