All of lore.kernel.org
 help / color / mirror / Atom feed
From: "M. Todd Smith" <todd@sohovfx.com>
To: nfs@lists.sourceforge.net
Subject: Re: NFS tuning - high performance throughput.
Date: Tue, 14 Jun 2005 18:49:46 -0400	[thread overview]
Message-ID: <42AF5F0A.3080601@sohovfx.com> (raw)
In-Reply-To: <20050614204138.GG1175@ti64.telemetry-investments.com>

First off thanks for the overwhelming response.  I'll start with Bill's 
response, fill in any holes after that.

Bill Rugolsky Jr. wrote:

>I assume that you mean 45 MiB/s?  Reading or writing?  What are you
>using for testing?  What are the file sizes?
>  
>
I'm not sure what a MiB/s is.  I've been using the following for testing 
writes.

time dd if=/dev/zero of=/mnt/array1/testfile5G.001 bs=512k count=10240

which writes a 5Gb file to the mounted NFS volume, I've then been taking 
the times thrown back once that finishes
and calculating the megabytes/second, and averaging over ten seperate 
tests unmounting and remounting the volume after each test.

For reads I cat the file back to /dev/null

time cat /mnt/array1/testfile5G.001 >> /dev/null

Read times are better, but not optimal either usually sitting around ~ 
70Mbytes/sec.

> 
>Have you validated network throughput using ttcp or netperf?
>  
>
We did at one point validate newtork throughput with ttcp, although I 
have yet to find a definite guide to using ttcp, here is some output.

sender:
ttcp-t: buflen=8192, nbuf=2048, align=16384/0, port=5001
ttcp-t: sockbufsize=65535,  # udp -> test_sweet #
ttcp-t: 16777216 bytes in 0.141 real seconds = 116351.241 KB/sec +++
ttcp-t: 2054 I/O calls, msec/call = 0.070, calls/sec = 14586.514
ttcp-t: 0.000user 0.050sys 0:00real 35% 0i+0d 0maxrss 0+2pf 0+0csw

receiver:
ttcp-r: buflen=8192, nbuf=2048, align=16384/0, port=5001
ttcp-r: sockbufsize=65536,  # udp #
ttcp-r: 16777216 bytes in 0.141 real seconds = 115970.752 KB/sec +++
ttcp-r: 2050 I/O calls, msec/call = 0.071, calls/sec = 14510.501
ttcp-r: 0.000user 0.059sys 0:00real 35% 0i+0d 0maxrss 0+1pf 2017+18csw

>You say that you've read the tuning guides, but you haven't told us what
>you have touched.  Please tell us:
>
>   o client-side NFS mount options
>  
>
exec,dev,suid,rw,rsize=32768,wsize=32768,timeo=500,retrans=10,retry=60,bg 
1 0

>   o RAID configuration (level, stripe size, etc.)
>  
>

RAID 5, 4k strip size, XFS file system.

meta-data=/array1               isize=256    agcount=32, agsize=13302572 
blks
                   =                      sectsz=512 
data             =                      bsize=4096   blocks=425682304, 
imaxpct=25
                    =                     sunit=0      swidth=0 blks, 
unwritten=1
naming        =version 2       bsize=4096 
log               =internal         bsize=4096   blocks=32768, version=1
                    =                     sectsz=512   sunit=0 blks
realtime        =none             extsz=65536  blocks=0, rtextents=0

>   o I/O scheduler
>  
>
Not sure what you mean here.

>   o queue depths (/sys/block/*/queue/nr_requests)
>  
>
1024

>   o readahead (/sbin/blockdev --getra <device>)
>  
>
256

>   o mount options (e.g., are you using noatime)
>  
>
/array1                 xfs     logbufs=8,noatime,nodiratime

>   o filesystem type
>  
>
XFS

>   o journaling mode, if Ext3 or Reiserfs
>  
>
>   o journal size
>
>   o internal or external journal
>  
>
log               =internal         bsize=4096   blocks=32768, version=1
                    =                     sectsz=512   sunit=0 blks

>   o vm tunables:
>
>      vm.dirty_writeback_centisecs
>      vm.dirty_expire_centisecs
>      vm.dirty_ratio
>      vm.dirty_background_ratio
>      vm.nr_pdflush_threads
>      vm.vfs_cache_pressure
>  
>
vm.vfs_cache_pressure = 100
vm.nr_pdflush_threads = 2
vm.dirty_expire_centisecs = 3000
vm.dirty_writeback_centisecs = 500
vm.dirty_ratio = 29
vm.dirty_background_ratio = 7

The SAN layout is as follows

I did not set this part up and have had little time to catch up on it so 
far.  We initially attempted to have this setup such that we would 
stripe across both arrays but had some problems and due to time 
constraints on having the new system in place had to go back to the two 
array method.

Just went and had a look, I'm not sure it all makes sense to me yet.

----------------------
2*parity drives
2*spare drives
----------------------
       | |      | |           (2 FC conns)
----------------------
ARRAY 1
----------------------
       | |      | |
----------------------
ARRAY 2
----------------------
       | |      | |
----------------------
FC controller card
-----------------------
       | |      | |
-----------------------
FC card on server
-----------------------

Not sure why the connections are chained all the way through the system 
like that, I'll have to ask our hardware vendor why its setup that way.  
Theoretically the throughput to/from this SAN should be more in the 
range of 300-400Mb/s.  Haven't had a chance to do any testing with that 
though.

Using 256 NFS threads on the server, and the following sysctl settings.
net.ipv4.tcp_mem = 196608       262144  393216
net.ipv4.tcp_wmem = 4096        65536   8388608
net.ipv4.tcp_rmem = 4096        87380   8388608
net.core.rmem_default = 65536
net.core.rmem_max = 8388608
net.core.wmem_default = 65536
net.core.wmem_max = 8388608

Have hyperthreading turned off.

Also if anyone can recommend some good NFS reference material, I'd love 
to get my hands on it.

Cheers
Todd

-- 
Systems Administrator
----------------------------------
Soho VFX - Visual Effects Studio
99 Atlantic Avenue, Suite 303
Toronto, Ontario, M6K 3J8
(416) 516-7863 
http://www.sohovfx.com
----------------------------------


 



-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
_______________________________________________
NFS maillist  -  NFS@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nfs

  reply	other threads:[~2005-06-14 22:49 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20050610031144.4B9CA12F8C@sc8-sf-spam2.sourceforge.net>
2005-06-14 20:17 ` NFS tuning - high performance throughput M. Todd Smith
2005-06-14 20:41   ` Bill Rugolsky Jr.
2005-06-14 22:49     ` M. Todd Smith [this message]
2005-06-15 13:03       ` Roger Heflin
2005-06-15 14:47         ` M. Todd Smith
2005-06-15 15:28           ` Roger Heflin
2005-06-15 19:13             ` Dan Stromberg
2005-06-15 19:52               ` Roger Heflin
2005-06-15 20:11                 ` Dan Stromberg
2005-06-15 20:31                   ` Roger Heflin
2005-06-15 20:33                   ` Chris Penney
2005-06-15 17:47       ` Bill Rugolsky Jr.
2005-06-15 20:33         ` M. Todd Smith
2005-06-15 22:43           ` Bill Rugolsky Jr.
2005-06-15 22:47         ` Greg Banks
2005-06-14 20:50   ` Bill Rugolsky Jr.
2005-06-14 21:04   ` Chris Penney
2005-06-14 21:06     ` Chris Penney
2005-06-14 21:11   ` Roger Heflin
     [not found] <482A3FA0050D21419C269D13989C611308539C89@lavender-fe.eng.netapp.com>
2005-06-14 20:38 ` M. Todd Smith
2005-06-15  1:56   ` Dan Stromberg
2005-06-14 20:40 Lever, Charles

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=42AF5F0A.3080601@sohovfx.com \
    --to=todd@sohovfx.com \
    --cc=nfs@lists.sourceforge.net \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.