From: Joe.Pranevich@corp.terralycos.com
To: linux-kernel@vger.kernel.org
Subject: NFS Performance on Linux 2.2.19 (RedHat version) -- lstat64() ?
Date: Tue, 4 Dec 2001 19:27:38 -0500 [thread overview]
Message-ID: <OFEE87D44A.D1899606-ON85256B19.00026956@ma.lycos.com> (raw)
Hello,
I'm currently involved in porting one of our properties over to Linux from
Solaris and have noticed some disparities in NFS client performance between
Linux and Solaris and I thought I'd ask about it. (The property is almost
100% NFS-based with a couple terabytes of storage on the backend in a sort
of hashed directory structure.) The NFS servers that we are using are all
NetApps.
I have run quick benchmarks (dd'ing from /dev/zero to files on the nfs
mount, then reading them back on other hosts) and have seen good
performance for Linux all around. (The servers that we are using are IBM
dual 800 mhz jobs w/ 2 Gig RAM vs a Sun E450) Under these simple
circumstances, Linux ranges from almost as good as Solaris (writing to NFS)
to almost twice as good (reading from NFS)-- at least how we have things
setup, but not in a precise testing environment. Where my confusion comes
in is that a simple "ls" against a directory with a couple files takes
approximately 4-5 times as long under Linux as on Solaris. Doing a "strace
-c" on the ls process shows that nearly all of the time is being spent in
lstat64(). (And yes, I was using "ls --color=none" :) ) (Our application
does a lot of similar operations, so this is a valid test.)
Is this a known issue or is there are workaround that might allow me to
improve performance? Although I'm running a RedHat kernel (which I
understand is based on one of the AC kernels, partly), there may be a newer
version of the NFS client software that I could try. (I found the
SourceForge site for the server software, but not the client.) Does the 2.4
kernel have significantly better NFS performance or any advantage that
might be worth the effort of switching for benchmarking? (You'd think I
might know the answer to that, wouldn't you...)
(And yes, I know that this is an apples-to-oranges comparison, but since
we're mostly network bound I don't think it's likely to be much of a deal.)
Thanks so much for your help, I've appended some additional information to
this mail that may make things clearer.
Joe Pranevich (wearing his Lycos hat)
Production Service Manager
Lycos Personal Publishing
--
NFS options:
hard,nfsvers=3,intr,rsize=8192,wsize=8192,bg
(similar trials were performed with NFS v2, and both TCP and UDP modes.)
Ethernet cards are eepro100 cards using the Linux "eepro100.o" driver. I
did a benchmark with Intel's e100.o driver and it was twice as slow, even
with hardware checksumming enabled. Note that I'm forcing duplex and speed,
but not doing any other trickery.
strace -c -f ls -alF --color=none
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
99.82 4.184893 3532 1185 lstat64
0.12 0.005008 218 23 5 open
0.04 0.001773 253 7 getdents
0.01 0.000292 14 21 write
0.00 0.000116 10 12 read
0.00 0.000109 5 24 old_mmap
0.00 0.000074 4 21 close
0.00 0.000057 6 9 munmap
0.00 0.000046 5 10 brk
0.00 0.000029 15 2 socket
0.00 0.000025 5 5 fcntl
0.00 0.000025 2 13 fstat
0.00 0.000019 10 2 2 connect
0.00 0.000016 3 5 mprotect
0.00 0.000014 2 6 fstat64
0.00 0.000010 2 5 lseek
0.00 0.000008 4 2 2 ioctl
0.00 0.000006 6 1 getpid
0.00 0.000005 5 1 time
0.00 0.000002 2 1 personality
------ ----------- ----------- --------- --------- ----------------
100.00 4.192527 1355 9 total
Same directory on Sun: (although their truss adds two seconds to this
command. When done un-trussed using "time", it's only one second. Linux
isn't as affected as such.)
syscall seconds calls errors
_exit .00 1
read .00 1
write .02 11
open .00 6 1
close .00 6
time .00 1
brk .00 60
stat .00 1
fstat .00 3
ioctl .01 2 2
execve .00 1
fcntl .00 2
mmap .00 7
munmap .00 2
memcntl .00 1
llseek .00 1
acl .14 1185
door .00 4
getdents64 .00 53
lstat64 .40 1185
fstat64 .00 2
open64 .00 2
---- --- ---
sys totals: .57 2537 3
usr time: .33
elapsed: 3.05
next reply other threads:[~2001-12-05 0:27 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-12-05 0:27 Joe.Pranevich [this message]
2001-12-05 12:11 ` Trond Myklebust
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=OFEE87D44A.D1899606-ON85256B19.00026956@ma.lycos.com \
--to=joe.pranevich@corp.terralycos.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®