| Sequential Output | Sequential Input | Random Seeks | Sequential Create | Random Create | ||||||||||||||||||||
| Per Char | Block | Rewrite | Per Char | Block | Create | Read | Delete | Create | Read | Delete | ||||||||||||||
| K/sec | % CPU | K/sec | % CPU | K/sec | % CPU | K/sec | % CPU | K/sec | % CPU | / sec | % CPU | / sec | % CPU | / sec | % CPU | / sec | % CPU | / sec | % CPU | / sec | % CPU | / sec | % CPU | |
| Ext2 | 2486 | 77 | 7292 | 15 | 1554 | 4 | 2188 | 61 | 5579 | 19 | 191.0 | 1 | 85 | 91 | ? | ? | 37458 | 90 | 89 | 95 | ? | ? | 344 | 95 |
| Ext2 1KB | 2424 | 73 | 8582 | 31 | 1778 | 6 | 2415 | 64 | 8021 | 36 | 168.6 | 1 | 85 | 91 | ? | ? | 37232 | 94 | 86 | 91 | ? | ? | 333 | 94 |
| Ext3 Journal | 1441 | 40 | 2680 | 9 | 1600 | 19 | 2555 | 61 | 7217 | 65 | 144.0 | 1 | 60 | 80 | 99199 | 85 | 17089 | 86 | 70 | 93 | ? | ? | 187 | 59 |
| Ext3 Ordered | 2253 | 75 | 6535 | 46 | 2757 | 8 | 1823 | 46 | 4745 | 52 | 93.3 | 1 | 65 | 88 | ? | ? | 18154 | 96 | 70 | 94 | ? | ? | 177 | 57 |
| Ext3 WriteBack | 2200 | 67 | 5736 | 33 | 2733 | 8 | 2545 | 64 | 7359 | 62 | 192.3 | 1 | 67 | 89 | ? | ? | 18290 | 96 | 69 | 90 | ? | ? | 180 | 58 |
| Ext3 1KB Journal | 1279 | 40 | 1924 | 14 | 1333 | 16 | 3066 | 75 | 6276 | 26 | 121.3 | 1 | 54 | 90 | 99206 | 94 | 9456 | 53 | 53 | 90 | ? | ? | 73 | 36 |
| Ext3 1KB Ordered | 1964 | 63 | 6786 | 38 | 1620 | 8 | 1887 | 51 | 4493 | 23 | 116.7 | 1 | 54 | 89 | 98336 | 94 | 8980 | 51 | 54 | 88 | 97603 | 74 | 74 | 36 |
| Ext3 1KB WriteBack | 2094 | 66 | 6162 | 30 | 1763 | 7 | 2110 | 55 | 5125 | 23 | 135.4 | 1 | 53 | 89 | 99073 | 95 | 9112 | 51 | 54 | 89 | ? | ? | 75 | 37 |
| XFS | 2215 | 65 | 8508 | 23 | 1796 | 6 | 2469 | 62 | 6734 | 46 | 110.7 | 1 | 258 | 49 | 87758 | 97 | 298 | 44 | 270 | 51 | ? | ? | 61 | 2 |
| XFS 1KB | 2231 | 68 | 7939 | 26 | 1659 | 7 | 2846 | 70 | 5785 | 27 | 190.9 | 3 | 257 | 43 | 77941 | 86 | 348 | 40 | 274 | 48 | ? | ? | 65 | 2 |
| ReiserFS | 2780 | 81 | 9070 | 42 | 2032 | 7 | 2190 | 69 | 5308 | 48 | 83.9 | 1 | 2067 | 59 | 92031 | 88 | 960 | 31 | 1826 | 53 | ? | ? | 223 | 12 |
| ReiserFS 1KB | 2447 | 71 | 7647 | 27 | 2184 | 13 | 1624 | 52 | 4161 | 43 | 81.3 | 1 | 117 | 3 | 85348 | 89 | 122 | 3 | 101 | 2 | ? | ? | 53 | 1 |
| JFS | 2345 | 68 | 5997 | 24 | 2738 | 5 | 2562 | 64 | 8007 | 68 | 141.4 | 1 | 1848 | 20 | 83195 | 94 | 476 | 5 | 224 | 7 | ? | ? | 52 | 1 |
Interpretacja:
Najpierw słów parę o technice wykonania testu: test wykonywany był najnowszą
wersją bonnie++. Uwzględniłem wszystkie rozsądne filesystemy dostępne
standardowo w jądrze 2.6.0-test9. Filesystemy działały w trybie obsługi
EA+ACL (choć nie wiem czy to ma znaczenie), wyjątkiem są JFS oraz ReiserFS,
które nie obsługują jeszcze duetu EA+ACL. Filesystemy testowane były
z blokiem wielkości 4KB oraz 1KB, oprócz JFS który nie pozwala jeszcze na
wybranie rozmiaru bloku i mogłem sprawdzić tylko standardowe ustawienia
(4KB). Dzięki temu można oszacować, czy zmniejszenie bloku z 4KB do 1KB
faktycznie powoduje jakieś wyraźne spowolnienie operacji dyskowych, ważny
jest tutaj zwłaszcza test Random Create który najwięcej mówi o problemach
filesystemu gdy nagle ma 4x więcej bloków do nadzorowania.
Każdy test składał się z dwóch głównych etapów - sprawdzianu odczytu
danych i ogólnego obchodzenia się z dużymi plikami (tutaj były to pliki
większe od 200MB) - (Sequential Output, Input, Rewrite), oraz
sprawdzianu mechanizmów obsługujących wiele plików w jednym katalogu, czyli
najogólniej testy wydajności alokacji i zarządzania inodami. Ta część
polegała na tworzeniu, stat-owaniu i usuwaniu nieco ponad 51 tysięcy plików
(Sequential Create, Random Create). Dokładny opis każdego z testów
można znaleźć w dokumentacji bonnie++, dlatego nie będę tego teraz tutaj
przytaczał. Najważniejsze jest to, by oprócz samych transferów danych
uwzględniać również podawane obok obciążenie procesora, jakie wywołała dana
operacja. Bo jeśli jakieś operacje na filesystemie bardzo obciążały
procesor, to w normalnych warunkach filesystem mógłby nie dostać
wystarczającej liczby cykli procesora by osiągnąć taką samą wydajność jak
w teście. Należy to brać pod uwagę. Aha, pozycje oznaczone znakiem zapytania
to te testy, które zakończyły się w czasie mniejszym od pół sekundy i nie
mogły zostać wiarygodnie oszacowane.
Ja w każdym razie jestem zmęczony zestawianiem wyników i nie mam ochoty
ich teraz interpretować. Może innym razem. Za dużo tych cyferek.