All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ric Wheeler <rwheeler@redhat.com>
To: "J. Bruce Fields" <bfields@fieldses.org>
Cc: Peter Staubach <staubach@redhat.com>,
	Jason Legate <linux-nfs@proxime.net>,
	linux-nfs@vger.kernel.org
Subject: Re: NFS for millions of files
Date: Thu, 03 Sep 2009 14:37:51 -0400	[thread overview]
Message-ID: <4AA00CFF.6010304@redhat.com> (raw)
In-Reply-To: <20090903181535.GA10670@fieldses.org>

On 09/03/2009 02:15 PM, J. Bruce Fields wrote:
> On Wed, Sep 02, 2009 at 02:37:31PM -0400, Peter Staubach wrote:
>    
>> Please keep in mind that the NFS stable storage requirements are
>> probably causing a significant slowdown in activities such as this.
>>      
> My first thought too, but:
>
>    
>> Jason Legate wrote:
>>      
>>> When I run our creation benchmark locally  I can get around 3000
>>> files/ second in the configuration we're using now, but only around
>>> 300/second over NFS.  It's mounted as this:
>>>        
> ...
>    
>>> When I mount the same FS over localhost instead of across the lan,
>>> it performs about full speed (the 3000/sec).
>>>        
> The localhost NFS mount would be incurring the same sync latency, so all
> his latency must be due to network.  (And with those numbers I guess
> he's either got lots of disk spindles, or an ssd, or (uh-oh) has the
> async option set?)
>
> --b.
>    

For small files without doing an fsync per file, getting 3000 files/sec 
is not that much. Ext3 can do it with a local s-ata disk. I suspect that 
Jason would run much slower if he ran with local fsync()'s enabled 
(similar to what NFS servers have to do).

Some quick testing on a local F12 (rawhide) box:

No fsync: 3729 files/sec

[root@ricdesktop rwheeler]# fs_mark -s 20480 -n 10000 -S 0 -d /test/test_dir

#  fs_mark  -s  20480  -n  10000  -S  0  -d  /test/test_dir
#    Version 3.3, 1 thread(s) starting at Thu Sep  3 14:26:26 2009
#    Sync method: NO SYNC: Test does not issue sync() or fsync() calls.
#    Directories:  no subdirectories used
#    File names: 40 bytes long, (16 initial bytes of time stamp with 24 
random bytes at end of name)
#    Files info: size 20480 bytes, written with an IO size of 16384 
bytes per write
#    App overhead is time in microseconds spent in the test not doing 
file writing related system calls.

FSUse%        Count         Size    Files/sec     App Overhead
      5        10000        20480       3729.0           315859

Fsync & working barriers: 24.8 files/sec

[root@ricdesktop rwheeler]# fs_mark -s 20480 -n 10000 -S 1 -d /test/test_dir

#  fs_mark  -s  20480  -n  10000  -S  1  -d  /test/test_dir
#    Version 3.3, 1 thread(s) starting at Thu Sep  3 14:27:00 2009
#    Sync method: INBAND FSYNC: fsync() per file in write loop.
#    Directories:  no subdirectories used
#    File names: 40 bytes long, (16 initial bytes of time stamp with 24 
random bytes at end of name)
#    Files info: size 20480 bytes, written with an IO size of 16384 
bytes per write
#    App overhead is time in microseconds spent in the test not doing 
file writing related system calls.

FSUse%        Count         Size    Files/sec     App Overhead
      5        10000        20480         24.8           350322

Fsync/no write barriers: 377.1 files/sec

[root@ricdesktop rwheeler]# umount /test/
[root@ricdesktop rwheeler]# mount -o barrier=0 /dev/sdb /test/
[root@ricdesktop rwheeler]# fs_mark -s 20480 -n 10000 -S 1 -d /test/test_dir

#  fs_mark  -s  20480  -n  10000  -S  1  -d  /test/test_dir
#    Version 3.3, 1 thread(s) starting at Thu Sep  3 14:36:27 2009
#    Sync method: INBAND FSYNC: fsync() per file in write loop.
#    Directories:  no subdirectories used
#    File names: 40 bytes long, (16 initial bytes of time stamp with 24 
random bytes at end of name)
#    Files info: size 20480 bytes, written with an IO size of 16384 
bytes per write
#    App overhead is time in microseconds spent in the test not doing 
file writing related system calls.

FSUse%        Count         Size    Files/sec     App Overhead
      5        10000        20480        377.1           328472


Ric






  reply	other threads:[~2009-09-03 18:35 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-02 18:08 NFS for millions of files Jason Legate
2009-09-02 18:19 ` Aaron Wiebe
2009-09-02 18:35   ` Peter Chacko
2009-09-02 19:06     ` Jason Legate
2009-09-02 19:10     ` Aaron Wiebe
2009-09-02 19:27       ` Peter Chacko
2009-09-02 19:00   ` Jason Legate
2009-09-02 18:37 ` Peter Staubach
2009-09-03 18:15   ` J. Bruce Fields
2009-09-03 18:37     ` Ric Wheeler [this message]
2009-09-03 18:54       ` Trond Myklebust
2009-09-03 19:05       ` J. Bruce Fields
2009-09-02 18:38 ` 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=4AA00CFF.6010304@redhat.com \
    --to=rwheeler@redhat.com \
    --cc=bfields@fieldses.org \
    --cc=linux-nfs@proxime.net \
    --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.