[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Dateisystem-Performance: ext3 überrundet xfs??



On Sat, Aug 02, 2008 at 10:56:29AM +0200, Markus Schulz wrote:
> > Der Testparcour war ganz einfach: kopieren und löschen eines
> > "dreckigen" Debian-Kernel-Build-Trees, mit allen Objekt-Dateien etc,
> > zusammen 38755 Dateien, ca. 567MB.  Keine Raffinessen, sync oder
> > cache flushes, einfach losgelegt und mit dem bash-Befehl "time" die
> > Zeit genommen.
> >
> >  ext3-fs: /dev/hda1, 9GB  (root-Partition)
> >  xfs-fs:  /dev/hda17, 2GB (extra Test-Partition)
> 
> Nimm bitte eine FS-Benchmark ala Bonnie++ für solche Tests.
> Dein Testsetup sollte dann auch so aussehen, das du den Test erst mit 
> ext3 auf der 2GB Partition machst und anschließend mit xfs. Nur dann 
> hast du eine realistische Testumgebung.

Okay, guter Vorschlag, hab ich gemacht.  Um dem Kerneltree-Szenario möglichst
nahe zu kommen, hab ich bonnie++ mit "-n 40:1024k:128k:2265" aufgerufen (d.h.
der "Metadata"-Test lief mit von 40.000 Dateien in 2265 Ordnern, zwischen 128k
und 1MB groß).

Gleich vorab das Fazit: die Performance unterscheidet sich in den meisten
Punkten nicht sehr, mit folgenden Ausnahmen: 

 * sequentielles Schreiben ist unter ext3 etwas schneller 
 * stat() ist mit xfs extrem viel schneller 
   (in der Tabelle: Spalte "Create/Read") 
 * Der Knüller: xfs bricht beim Erstellen und Löschen von Dateien total
   zusammen.  Aber wirklich!

Letzteres erklärt natürlich, warum das Manipulieren eines Kernel-Trees
unter xfs so eine Qual ist.  Und übrigens deckt sich der ganze Befund
tendentiell auch mit dem (zweiten) Benchmark in der Linux Gazette[1],
dort brauchte xfs für Operationen auf dem Kernel-Tree (tar/untar,
löschen, kopieren) rund 3-4 mal so lang wie ext3.

Die Ergebnisse von bonnie++ im einzelnen:

zorro[bonnie-big]$ bon_csv2txt <xfs-hda17.log 
Version  1.03d      ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
zorro          496M 13467  97 24201  16 13498   5 25840  97 61586  15 225.2   1
zorro          496M 12685  98 26599  14 13809   6 25258  94 61635  17 211.2   0
zorro          496M 13100  97 26847  27 14016   6 27893  93 61803  21 230.7   0
zorro          496M 12852  98 26766  28 13785   6 26956  95 61699  15 214.3   0
zorro          496M 14824  97 27319  28 14024   6 24407  94 61866  15 217.6   0
zorro          496M 13691  97 27451  29 13929   7 24142  94 61588  17 224.8   0
                    ------Sequential Create------ --------Random Create--------
                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files:max:min        /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
zorro     40:1024:0   254   4 80787 100   261   5   248   7 78431  99   108   2
zorro     40:1024:0   265   4 71685  85   266   3   241   8 15785  46   108   2
zorro     40:1024:0   255   4 75869  93   272   3   248   7 18659  52   107   2
zorro     40:1024:0   264   4 74675  91   270   3   241   7 34344  99   106   2
zorro     40:1024:0   252   4 81361  98   263   3   244   8 33197  98   109   2
zorro     40:1024:0   265   4 75597  92   269   5   242   7 79818  96   109   2

zorro[bonnie-big]$ ^xfs^ext3
bon_csv2txt <ext3-hda17.log 
Version  1.03d      ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
zorro          496M 21495  96 27376  36 13530  14 17010  97 61352  20 235.3   0
zorro          496M 11885  96 31874  49 13893  11 22785  90 61492  15 241.2   0
zorro          496M 12172  96 31303  49 13843  10 22711  91 61352  25 237.4   0
zorro          496M 10668  96 32166  53 14073   8 22902  92 61081  15 237.9   0
zorro          496M 12965  96 30694  22 14172   7 15442  96 61367  32 235.2   0
zorro          496M 17792  96 32742  30 13514   8 13024  97 61274  32 239.1   0
                    ------Sequential Create------ --------Random Create--------
                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files:max:min        /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
zorro     40:1024:0 11158  69  7608  11  6081  21  8674  54  7443  10  4077  16
zorro     40:1024:0  8004  49  7742  12  5652  20  9339  63  6618  13  4208  16
zorro     40:1024:0  8587  54  7596  12  5530  21  6000  69  6928  12  3191  25
zorro     40:1024:0  8396  53  6920  17  4135  37  4834  74  6133  20  3175  31
zorro     40:1024:0  7399  61  6270  23  4129  37  4813  74  5852  16  3879  23
zorro     40:1024:0  9219  59  7574  12  5586  22 10214  69  6827   9  4172  17

Ich hätte nie gedacht, daß ein so etabliertes Dateisystem bei einer so
einfachen Sache derart zusammenbrechen könnte.  Erstaunlich.

Nikolaus

[1] http://linuxgazette.net/122/TWDT.html#piszcz


Reply to: