From: Dean Hildebrand <seattleplus@gmail.com>
To: Krishna Kumar2 <krkumar2@in.ibm.com>
Cc: Chuck Lever <chuck.lever@oracle.com>,
Benny Halevy <bhalevy@panasas.com>,
linux-nfs@vger.kernel.org, Peter Staubach <staubach@redhat.com>,
"J. Bruce Fields" <bfields@fieldses.org>
Subject: Re: NFS performance degradation of local loopback FS.
Date: Fri, 27 Jun 2008 11:06:28 -0700 [thread overview]
Message-ID: <48652C24.6030409@gmail.com> (raw)
In-Reply-To: <OF3C28594A.91157CD9-ON65257475.0029EEE9-65257475.0031D7A5@in.ibm.com>
One option might be to try using O_DIRECT if you are worried about
memory (although I would read/write in at least 1 MB at a time). I
would expect this to help at least a bit especially on reads.
Also, check all the standard nfs tuning stuff, #nfsds, #rpc slots.
Since with a loopback you effectively have no latency, you would want to
ensure that neither the #nfsds or #rpc slots is a bottleneck (if either
one is too low, you will have a problem). One way to reduce the # of
requests and therefore require fewer nfsds/rpc_slots is to 'cat
/proc/mounts' to see your wsize/rsize. Ensure your wsize/rsize is a
decent size (~ 1MB).
Dean
Krishna Kumar2 wrote:
> Chuck Lever <chuck.lever@oracle.com> wrote on 06/26/2008 11:12:58 PM:
>
>
>>> Local:
>>> Read: 69.5 MB/s
>>> Write: 70.0 MB/s
>>> NFS of same FS mounted loopback on same system:
>>> Read: 29.5 MB/s (57% drop)
>>> Write: 27.5 MB/s (60% drop)
>>>
>> You can look at client-side NFS and RPC performance metrics using some
>> prototype Python tools that were just added to nfs-utils. The scripts
>> themselves can be downloaded from:
>> http://oss.oracle.com/~cel/Linux-2.6/2.6.25
>> but unfortunately they are not fully documented yet so you will have
>> to approach them with an open mind and a sense of experimentation.
>>
>> You can also capture network traces on your loopback interface to see
>> if there is, for example, unexpected congestion or latency, or if
>> there are other problems.
>>
>> But for loopback, the problem is often that the client and server are
>> sharing the same physical memory for caching data. Analyzing your
>> test system's physical memory utilization might be revealing.
>>
>
> But loopback is better than actual network traffic. If my file size is
> less than half the available physical memory, then this should not be
> a problem, right? The server caches the file data (64K at a time), and
> sends to the client (on the same system) and the client has a local
> copy. I am testing today with that assumption.
>
> My system has 4GB memory, of which 3.4GB is free before running the test.
> I created a 1.46GB (so that double that size for server/client copies will
> not be more than 3GB) file by running:
> dd if=/dev/zero of=smaller_file bs=65536 count=24000
>
> To measure the time exactly for just the I/O part, I have a small program
> that
> reads data in chunks of 64K and discards it "while (read(fd, buf, 64K) >
> 0)",
> with a gettimeofday before and after it to measure bandwidth. For each run,
> the script does (psuedo): "umount /nfs, stop nfs server, umount /local,
> mount /local, start nfs server, and mount /nfs". The result is:
>
> Testing on /local
> Time: 38.4553 BW:39.01 MB/s
> Time: 38.3073 BW:39.16 MB/s
> Time: 38.3807 BW:39.08 MB/s
> Time: 38.3724 BW:39.09 MB/s
> Time: 38.3463 BW:39.12 MB/s
> Testing on /nfs
> Time: 52.4386 BW:28.60 MB/s
> Time: 50.7531 BW:29.55 MB/s
> Time: 50.8296 BW:29.51 MB/s
> Time: 48.2363 BW:31.10 MB/s
> Time: 51.1992 BW:29.30 MB/s
>
> Average bandwidth drop across 5 runs is 24.24%.
>
> Memory stats *before* and *after* one run for /local and /nfs is:
>
> ********** local.start ******
> MemFree: 3500700 kB
> Cached: 317076 kB
> Inactive: 249356 kB
>
> ********** local.end ********
> MemFree: 1961872 kB
> Cached: 1853100 kB
> Inactive: 1785028 kB
>
> ********** nfs.start ********
> MemFree: 3480456 kB
> Cached: 317072 kB
> Inactive: 252740 kB
>
> ********** nfs.end **********
> MemFree: 400892 kB
> Cached: 3389164 kB
> Inactive: 3324800 kB
>
> I don't know if this is useful but looking at ratios:
> Memfree increased almost 5 times from 1.78 (Memfree before / Memfree after)
> to 8.68 for /local and /nfs respectively. Inactive almost doubled from 7.15
> times to 13.15 times for /local and /nfs (Inactive after / Inactive
> before),
> and Cached also almost doubled from 5.84 times to 10.69 times (same for
> Cached).
>
>
>> Otherwise, you should always expect some performance degradation when
>> comparing NFS and local disk. 50% is not completely unheard of. It's
>> the price paid for being able to share your file data concurrently
>> among multiple clients.
>>
>
> But if the file is being shared only with one client (and that too
> locally),
> isn't 25% too high?
>
> Will I get better results on NFSv4, and should I try delegation (that
> sounds
> automatic and not something that the user has to start)?
>
> Thanks,
>
> - KK
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
next prev parent reply other threads:[~2008-06-27 18:06 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-19 6:46 NFS performance degradation of local loopback FS Krishna Kumar2
2008-06-19 9:58 ` Krishna Kumar2
2008-06-19 12:04 ` Peter Staubach
2008-06-19 12:52 ` Benny Halevy
2008-06-20 6:39 ` Krishna Kumar2
2008-06-20 9:21 ` Krishna Kumar2
2008-06-22 8:35 ` Benny Halevy
2008-06-23 8:11 ` Krishna Kumar2
2008-06-23 12:40 ` Benny Halevy
2008-06-26 7:19 ` Krishna Kumar2
2008-06-26 17:42 ` Chuck Lever
2008-06-26 17:55 ` J. Bruce Fields
2008-06-26 21:05 ` Chuck Lever
[not found] ` <76bd70e30806261405g9357c6fg51b973ff076ee78b-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-06-26 21:22 ` kernel hacker's pub night J. Bruce Fields
2008-06-26 21:24 ` J. Bruce Fields
2008-06-27 7:14 ` Benny Halevy
2008-06-27 9:04 ` NFS performance degradation of local loopback FS Krishna Kumar2
2008-06-27 14:06 ` Chuck Lever
[not found] ` <76bd70e30806270706x7cbfd291l6cb6d0cc5e81771-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-06-30 9:57 ` Krishna Kumar2
2008-06-30 15:25 ` Chuck Lever
[not found] ` <76bd70e30806300825t6490477dpb8ce3ee48a0a6777-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-07-01 3:43 ` Krishna Kumar2
2008-06-27 17:44 ` J. Bruce Fields
2008-06-27 18:06 ` Dean Hildebrand [this message]
2008-06-30 10:10 ` Krishna Kumar2
2008-06-30 15:26 ` Jeff Layton
[not found] ` <20080630112654.012ce3e4-xSBYVWDuneFaJnirhKH9O4GKTjYczspe@public.gmane.org>
2008-06-30 15:35 ` J. Bruce Fields
2008-06-30 16:00 ` Chuck Lever
2008-07-01 10:19 ` Krishna Kumar2
2008-07-01 12:47 ` Jeff Layton
2008-06-30 15:35 ` Chuck Lever
2008-07-01 5:07 ` Krishna Kumar2
2008-06-30 15:30 ` Chuck Lever
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=48652C24.6030409@gmail.com \
--to=seattleplus@gmail.com \
--cc=bfields@fieldses.org \
--cc=bhalevy@panasas.com \
--cc=chuck.lever@oracle.com \
--cc=krkumar2@in.ibm.com \
--cc=linux-nfs@vger.kernel.org \
--cc=staubach@redhat.com \
/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.