Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 22 May 2001 12:03:33 -0400
From:      Jason Andresen <jandrese@mitre.org>
To:        "Albert D. Cahalan" <acahalan@cs.uml.edu>
Cc:        ccf@master.ndi.net, gordont@bluemtn.net, jkh@osd.bsdi.com, freebsd-hackers@freebsd.org
Subject:   Re: technical comparison
Message-ID:  <3B0A8DD5.9A38449B@mitre.org>
References:  <200105220411.f4M4BDX101825@saturn.cs.uml.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
"Albert D. Cahalan" wrote:
> 
> Gordon Tetlow writes:
> > On Mon, 21 May 2001, Jordan Hubbard wrote:
> >> [Charles C. Figueire]
> 
> >>> c) A filesystem that will be fast in light of tens of thousands of
> >>>    files in a single directory (maybe even hundreds of thousands)
> >>
> >> I think we can more than hold our own with UFS + soft updates.  This
> >> is another area where you need to get hard numbers from the Linux
> >> folks.  I think your assumption that "Linux handles this effectively"
> >> is flawed and I'd like to see hard numbers which prove otherwise;
> >> you should demand no less.
> >
> > Also point out the reliability factor here which is a bit harder to point
> > to a magic number and "See, we *are* better!" ext2 runs async by default
> > which can lead to nasty filesystem corruption in the event of a power
> > loss. With softupdates, the filesystem metadata will always be in sync and
> > uncorrupted (barring media failure of course).
> 
> It should be immediately obvious that ext2 is NOT the filesystem
> being proposed, async or not. For large directories, ext2 sucks
> as bad as UFS does. This is because ext2 is a UFS clone.
> 
> The proposed filesystem is most likely Reiserfs. This is a true
> journalling filesystem with a radically non-traditional layout.
> It is no problem to put millions of files in a single directory.
> (actually, the all-in-one approach performs better than a tree)
> 
> XFS and JFS are similarly capable, but Reiserfs is well tested
> and part of the official Linux kernel. You can get the Reiserfs
> team to support you too, in case you want to bypass the normal
> filesystem interface for even better performance.
> 
> So, no async here, and "UFS + soft updates" can't touch the
> performance on huge directories.

Unfortunatly I don't have a ReiserFS partition available to test with,
but I do have UFS and ext2fs partitions.

Here's the results I got from postmark, which seems to be the closest
match to the original problem in the entire ports tree. 

Test setup:
Two machines with the same make and model hardware, one running
FreeBSD 4.0, the other running RedHat Linux 7.0.

The data:

Hardware:
Both machines have the same hardware on paper (although it is TWO
machines,
YMMV).
PII-300
Intel PIIX4 ATA33 controller
IBM-DHEA-38451 8063MB ata0-master using UDMA33 HD

Note: all variables are left at default unless mentioned.

10000 transactions, 500 files.

FreeBSD 4.0 +Softupdates, write cache disabled:
Time:
        35 seconds total
        34 seconds of transactions (294 per second)

Files:
        5513 created (157 per second)
                Creation alone: 500 files (500 per second)
                Mixed with transactions: 5013 files (147 per second)
        4917 read (144 per second)
        5016 appended (147 per second)
        5513 deleted (157 per second)
                Deletion alone: 526 files (526 per second)
                Mixed with transactions: 4987 files (146 per second)

Data:
        31.27 megabytes read (893.48 kilobytes per second)
        34.71 megabytes written (991.70 kilobytes per second)


Linux 2.2.16 ext2fs and write caching enabled
Time:
        28 seconds total
        28 seconds of transactions (357 per second)

Files:
        5513 created (196 per second)
                Creation alone: 500 files (500 per second)
                Mixed with transactions: 5013 files (179 per second)
        4917 read (175 per second)
        5016 appended (179 per second)
        5513 deleted (196 per second)
                Deletion alone: 526 files (526 per second)
                Mixed with transactions: 4987 files (178 per second)

Data:
        31.27 megabytes read (1.12 megabytes per second)
        34.71 megabytes written (1.24 megabytes per second)


10000 transactions, 30000 files:
FreeBSD 4.0 +softupdates, write cache disabled: 

Time:
        640 seconds total
        410 seconds of transactions (24 per second)

Files:
        34993 created (54 per second)
                Creation alone: 30000 files (146 per second)
                Mixed with transactions: 4993 files (12 per second)
        5055 read (12 per second)
        4944 appended (12 per second)
        34993 deleted (54 per second)
                Deletion alone: 29986 files (1199 per second)
                Mixed with transactions: 5007 files (12 per second)

Data:
        25.62 megabytes read (40.03 kilobytes per second)
        179.79 megabytes written (280.92 kilobytes per second)

Linux 2.2.16 ext2fs with write caching enabled
Time:
        1009 seconds total
        612 seconds of transactions (16 per second)

Files:
        34993 created (34 per second)
                Creation alone: 30000 files (83 per second)
                Mixed with transactions: 4993 files (8 per second)
        5055 read (8 per second)
        4944 appended (8 per second)
        34993 deleted (34 per second)
                Deletion alone: 29986 files (768 per second)
                Mixed with transactions: 5007 files (8 per second)

Data:
        25.62 megabytes read (25.39 kilobytes per second)
        179.79 megabytes written (178.19 kilobytes per second)

10000 transactions, 60000 files
FreeBSD 4.0 with Softupdates, write cache disabled
Time:
        1259 seconds total
        495 seconds of transactions (20 per second)

Files:
        65065 created (51 per second)
                Creation alone: 60000 files (87 per second)
                Mixed with transactions: 5065 files (10 per second)
        5078 read (10 per second)
        4921 appended (9 per second)
        65065 deleted (51 per second)
                Deletion alone: 60130 files (761 per second)
                Mixed with transactions: 4935 files (9 per second)

Data:
        26.01 megabytes read (20.66 kilobytes per second)
        325.12 megabytes written (258.24 kilobytes per second)

Linux 2.2.16 with ext2fs and write cache enabled
Time:
        1032 seconds total
        578 seconds of transactions (17 per second)

Files:
        34993 created (33 per second)
                Creation alone: 30000 files (76 per second)
                Mixed with transactions: 4993 files (8 per second)
        5055 read (8 per second)
        4944 appended (8 per second)
        34993 deleted (33 per second)
                Deletion alone: 29986 files (499 per second)
                Mixed with transactions: 5007 files (8 per second)

Data:
        25.62 megabytes read (24.83 kilobytes per second)
        179.79 megabytes written (174.21 kilobytes per second)

Results:
ufs+softupdates is a little slower than ext2fs+wc for low numbers of
files, but scales better.  I wish I had a Reiserfs partition to 
test with.


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3B0A8DD5.9A38449B>