NFS performance issue

From: Zeev Fisher (zeevf@galileo.co.il)
Date: Tue Dec 17 2002 - 11:34:19 EST


Hi,

We have many clients ( Solaris & Linux ) mounted to one Netapp which
it's CPU utilization is very high ( ~80% ). The cache age is also small
( ~3 )
Due to that i get many messages of "Server not responding".
I would like to try to reduce the CPU utilization without buying new
filer...

I see that most of the time it's doing getattr and also i see it on the
client so i guess increasing actimeo parameter will help.

I have 2 questions :

    1) Does the increment of actimeo will help the CPU issue on my nfs
server ( the Netapp )
    2) I see that the buffer size is only 8k ( with nfsstat -m ) whereas
the default for nfs ver 3 ( which is the version i use ) is 32k
        Why do i get this value ? Does increasing it manually to 32k
recommend ?

Below some nfsstat outputs.

Thanks a lot.

On the server :

Server rpc:
TCP:
calls badcalls nullrecv badlen xdrcall
2488175 753 0 0 753

UDP:
calls badcalls nullrecv badlen xdrcall
1329401194 650 0 0 650

Server nfs:
calls badcalls
1331871942 0

Server nfs V2: (2990 calls)
null getattr setattr root lookup readlink read
50 2% 2739 92% 0 0% 0 0% 175 6% 2 0% 5 0%
wrcache write create remove rename link symlink
0 0% 0 0% 0 0% 0 0% 0 0% 0 0% 0 0%
mkdir rmdir readdir statfs
0 0% 0 0% 10 0% 9 0%

Read request stats (version 2)
0-511 512-1023 1K-2047 2K-4095 4K-8191 8K-16383
16K-32767 32K-65535 64K-131071
0 0 0 0 0 5
0 0 0
Write request stats (version 2)
0-511 512-1023 1K-2047 2K-4095 4K-8191 8K-16383
16K-32767 32K-65535 64K-131071
0 0 0 0 0 0
0 0 0
 
 
Server nfs V3: (1331868952 calls)
null getattr setattr lookup access readlink read
152114 0% 819040642 61%2502287 0% 395082742 30%5832834 0% 803760 0%
18118469 1%
write create mkdir symlink mknod remove rmdir
85026961 6%973955 0% 29746 0% 60733 0% 0 0% 1044408 0% 28316 0%
rename link readdir readdir+ fsstat fsinfo pathconf
139729 0% 1227 0% 718528 0% 2172030 0% 13087 0% 61216 0% 66168 0%
commit
0 0%
 
Read request stats (version 3)
0-511 512-1023 1K-2047 2K-4095 4K-8191 8K-16383
16K-32767 32K-65535 64K-131071
0 0 0 0 866590 17205575
6217 40087 0
Write request stats (version 3)
0-511 512-1023 1K-2047 2K-4095 4K-8191 8K-16383
16K-32767 32K-65535 64K-131071
1621176 323114 389125 526640 973807 81181784
3669 7646 0

On one of the clients ( Solaris ) :

root@galileo198 > nfsstat -c

Client rpc:
Connection oriented:
calls badcalls badxids timeouts newcreds
1651540 636 62 15 0
badverfs timers cantconn nomem interrupts
0 0 0 0 58
Connectionless:
calls badcalls retrans badxids timeouts
578472035 2204 8621 70 10030
newcreds badverfs timers nomem cantsend
0 0 15787 0 0

Client nfs:
calls badcalls clgets cltoomany
579675383 1416 579675383 6
Version 2: (3945 calls)
null getattr setattr root lookup
0 0% 1553 39% 1 0% 0 0% 1909 48%
readlink read wrcache write create
6 0% 430 10% 0 0% 0 0% 0 0%
remove rename link symlink mkdir
0 0% 0 0% 0 0% 0 0% 0 0%
rmdir readdir statfs
0 0% 31 0% 15 0%
Version 3: (579669813 calls)
null getattr setattr lookup access
0 0% 426836128 73% 4697612 0% 117546077 20% 5900866 1%
readlink read write create mkdir
796198 0% 12755229 2% 6058457 1% 1241081 0% 10516 0%
symlink mknod remove rmdir rename
341803 0% 0 0% 1888685 0% 10074 0% 26967 0%
link readdir readdirplus fsstat fsinfo
190 0% 533836 0% 922139 0% 3011 0% 60390 0%
pathconf commit
39523 0% 1031 0%
 
Client nfs_acl:
Version 2: (230 calls)
null getacl setacl getattr access
0 0% 0 0% 0 0% 224 97% 6 2%
Version 3: (1395 calls)
null getacl setacl
0 0% 1395 100% 0 0%

root@galileo198 > nfsstat -m
/project/galileo101 from galileo101:/prj/galileo101
 Flags:
vers=3,proto=udp,sec=sys,hard,intr,link,symlink,rsize=8192,wsize=8192,retrans=5,timeo=11
 Attr cache: acregmin=3,acregmax=60,acdirmin=30,acdirmax=60
 Lookups: srtt=7 (17ms), dev=3 (15ms), cur=2 (40ms)
 Reads: srtt=7 (17ms), dev=3 (15ms), cur=2 (40ms)
 Writes: srtt=7 (17ms), dev=3 (15ms), cur=2 (40ms)
 All: srtt=7 (17ms), dev=3 (15ms), cur=2 (40ms)

/usr/local/tools from galileo101:/usr/local8/tools
 Flags:
vers=3,proto=udp,sec=sys,hard,intr,link,symlink,rsize=8192,wsize=8192,retrans=5,timeo=11
 Attr cache: acregmin=3,acregmax=60,acdirmin=30,acdirmax=60
 Lookups: srtt=7 (17ms), dev=3 (15ms), cur=2 (40ms)
 Reads: srtt=7 (17ms), dev=3 (15ms), cur=2 (40ms)
 Writes: srtt=7 (17ms), dev=3 (15ms), cur=2 (40ms)
 All: srtt=7 (17ms), dev=3 (15ms), cur=2 (40ms)

/users/galileo101 from galileo101:/users/galileo101
 Flags:
vers=3,proto=udp,sec=sys,hard,intr,link,symlink,rsize=8192,wsize=8192,retrans=5,timeo=11
 Attr cache: acregmin=3,acregmax=60,acdirmin=30,acdirmax=60
 Lookups: srtt=7 (17ms), dev=3 (15ms), cur=2 (40ms)
 Reads: srtt=7 (17ms), dev=3 (15ms), cur=2 (40ms)
 Writes: srtt=8 (20ms), dev=7 (35ms), cur=4 (80ms)
 All: srtt=7 (17ms), dev=3 (15ms), cur=2 (40ms)

/cad from galileo101:/cad
 Flags:
vers=3,proto=udp,sec=sys,hard,intr,link,symlink,rsize=8192,wsize=8192,retrans=5,timeo=11
 Attr cache: acregmin=3,acregmax=60,acdirmin=30,acdirmax=60
 Lookups: srtt=7 (17ms), dev=3 (15ms), cur=2 (40ms)
 Reads: srtt=7 (17ms), dev=3 (15ms), cur=2 (40ms)
 Writes: srtt=5 (12ms), dev=3 (15ms), cur=2 (40ms)
 All: srtt=7 (17ms), dev=3 (15ms), cur=2 (40ms)

/usr/local/bin from galileo101:/usr/local8/bin
 Flags:
vers=3,proto=udp,sec=sys,hard,intr,link,symlink,rsize=8192,wsize=8192,retrans=5,timeo=11
 Attr cache: acregmin=3,acregmax=60,acdirmin=30,acdirmax=60
 Lookups: srtt=7 (17ms), dev=3 (15ms), cur=2 (40ms)
 Reads: srtt=7 (17ms), dev=3 (15ms), cur=2 (40ms)

/libraries from galileo101:/libraries
 Flags:
vers=3,proto=udp,sec=sys,hard,intr,link,symlink,acl,rsize=8192,wsize=8192,retrans=5,timeo=11
 Attr cache: acregmin=3,acregmax=60,acdirmin=30,acdirmax=60
 Lookups: srtt=8 (20ms), dev=4 (20ms), cur=3 (60ms)
 Reads: srtt=7 (17ms), dev=3 (15ms), cur=2 (40ms)

/lines from galileo101:/lines
 Flags:
vers=3,proto=udp,sec=sys,hard,intr,link,symlink,acl,rsize=8192,wsize=8192,retrans=5,timeo=11
 Attr cache: acregmin=3,acregmax=60,acdirmin=30,acdirmax=60
 Lookups: srtt=7 (17ms), dev=3 (15ms), cur=2 (40ms)
 Reads: srtt=2 (5ms), dev=2 (10ms), cur=1 (20ms)

/usr/local/scripts from galileo101:/usr/local8/scripts
 Flags:
vers=3,proto=udp,sec=sys,hard,intr,link,symlink,acl,rsize=8192,wsize=8192,retrans=5,timeo=11
 Attr cache: acregmin=3,acregmax=60,acdirmin=30,acdirmax=60
 Lookups: srtt=3 (7ms), dev=3 (15ms), cur=1 (20ms)
 Reads: srtt=3 (7ms), dev=3 (15ms), cur=1 (20ms)

/usr/local/utils from galileo101:/usr/local8/utils
 Flags:
vers=3,proto=udp,sec=sys,hard,intr,link,symlink,acl,rsize=8192,wsize=8192,retrans=5,timeo=11
 Attr cache: acregmin=3,acregmax=60,acdirmin=30,acdirmax=60
 Lookups: srtt=7 (17ms), dev=3 (15ms), cur=2 (40ms)
 Reads: srtt=7 (17ms), dev=4 (20ms), cur=2 (40ms)

/usr/local/toolset from galileo101:/usr/local8/toolset8.terminal
 Flags:
vers=3,proto=udp,sec=sys,hard,intr,link,symlink,acl,rsize=8192,wsize=8192,retrans=5,timeo=11
 Attr cache: acregmin=3,acregmax=60,acdirmin=30,acdirmax=60
 Lookups: srtt=7 (17ms), dev=3 (15ms), cur=2 (40ms)
 Reads: srtt=4 (10ms), dev=4 (20ms), cur=2 (40ms)

Zeev Fisher - Unix System Administrator
Galileo Technology Ltd - A Marvell Company
Moshav Manof, D.N. Misgav 20184, ISRAEL
Email - zeevf@galileo.co.il
Tel - + 972 4 8225046 ext. 2402
Cell - + 972 54 995402
Fax - + 972 4 8326420
WWW Page: http://www.marvell.com

------------------------------------------------------------------------
This message may contain confidential, proprietary or legally privileged
information. The information is intended only for the use of the individual
or entity named above. If the reader of this message is not the
intended recipient, you are hereby notified that any dissemination, distribution
or copying of this communication is strictly prohibited.
If you have received this communication in error, please notify us
immediately by telephone, or by e-mail and delete the message from your
computer.
_______________________________________________
sunmanagers mailing list
sunmanagers@sunmanagers.org
http://www.sunmanagers.org/mailman/listinfo/sunmanagers



This archive was generated by hypermail 2.1.7 : Wed Apr 09 2008 - 23:25:28 EDT