2.0 verzus 2.1
Cejka Rudolf
cejkar na dcse.fee.vutbr.cz
Pondělí Říjen 12 20:14:32 CEST 1998
Smolik Daniel (smolikdan na email.cz) wrote:
: Smolik Daniel wrote:
: > po precteni clanku v LN jsem se rozhodl vyzkouset ten "rychlostni"
: cislo srpen-zari
: > zazrak. Zkompiloval jsem si kernel 2.1.122. Vyrobil nalsedujici
: > testovaci script:
: > #!/bin/sh
: >
: > i=1000
: >
: > while [ $i -gt 1 ]
: > do
: > i=$[ i - 1 ]
: > cp tel tel.$i
: > done
: >
: > Vyrobil jsem adresare a v nich vytvoril 3000,4000,7000,8000,9000,10000
: > souboru.
: > Pak jsem udelal cd ./tenadresar ls pockal nez se vypise pak jsete
: > jednou. Potom jsem to pustil 3x, meril cas a spocital prumer. Vysledek
: > posudte sami.
: >
: > Porovnani rychlosti nacteni adresare mezi kernelem 2.0.35 a 2.1.122
: >
: > Pocet souboru v adresari: 3000 4000 7000 8000 9000 10000
: > cas 2.0.(s) 3.04 4 6.98 7.93 8.83 9.67
: > cas 2.1.(s) 0.98 1.30 2.17 3.05 11.30 52.8
Musim priznat, ze mi casy udavane u jadra 2.1.122 ponekud vyrazily
dech - vse ukazuje na pouziti algoritmu s exponencialni slozitosti, coz
by vypadalo spise jako krok vzad, nez vpred. Takze mi to nedalo
a zkusil jsem podobny test:
----------------------------------------------------------------------
#!/bin/bash
mkdir /tmp/tst ; cd /tmp/tst
sync ; sync ; sync
(
echo "Files: $1"
time (
time (
mkdir tst.dir ; cd tst.dir
i=$1
touch zzz
while [ $i -gt 1 ]; do
i=$[ i - 1 ]
cp zzz zzz.$i
done
echo ; echo "Create:"
) ; sync
echo ; echo "Sync-create:"
)
for m in 1 2 3 4 5 ; do
time (
time (
ls tst.dir >/dev/null
echo ; echo "List$m:"
) ; sync
echo ; echo "Sync-list$m:"
)
done
for m in 1 2 3 4 5 ; do
time (
time (
ls -l tst.dir >/dev/null
echo ; echo "List-l$m:"
) ; sync
echo ; echo "Sync-list-l$m:"
)
done
time (
time (
rm -r tst.dir
echo ; echo "Remove:"
) ; sync
echo ; echo "Sync-remove:"
)
) 2>&1 | tee tst.log.$1
----------------------------------------------------------------------
Testoval jsem na starem Pentiu/120 s 32 MB RAM a 3 GB IDE diskem:
1) Debian 2.0 s originalne dodavanym jadrem 2.0.34.
2) Debian 2.0 s jadrem 2.1.125. Pri konfiguraci jadra jsem vsude nechal
puvodni volbu. Nemam tuseni, zda existuje nejaky parametr, ktery by
byl schopen vyrazne ovlivnit vysledky testu. Napada nekoho neco?
Jen me napada, zda treba neni problem v tom, ze filesystem vytvarelo
jadro 2.0.34 a nikoli 2.1.125. Ale jinak mam pocit, ze vetsina
implicitnich nastaveni (vcetne detekce HW) je zvolena tak, aby
programy dosahovaly maximalni rychlosti.
3) Ze zajmu jsem si zkusil i FreeBSD 3.0-CURRENT (s vyvojovymi SoftUpdates),
ktere lezi na shodnem disku, na jakem je Linux Debian 2.0.
V davce jsem jen zamenil "/bin/bash" na "/usr/local/bin/bash".
Zde jsou vysledky v sekundach (s prumernymi casy jsem se nezdrzoval,
stejne jsou vsechny dost podobne).
Sync-create (vytvoreni N souboru s nulovou delkou v jednom adresari + sync):
N = 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
Linux 2.0.34 18.7 39.2 62.5 88.0 115.8 145.7 179.4 216.3 253.3 294.9
Linux 2.1.125 17.5 36.2 56.6 79.3 103.4 130.3 149.5 191.0 222.0 257.1
FreeBSD 3.0 13.6 28.7 47.0 66.5 88.3 118.1 141.3 172.9 205.6 239.7
Sync-list5 (ls + sync):
N = 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
Linux 2.0.34 0.144 0.223 0.312 0.404 0.512 0.618 0.726 0.827 0.949 1.059
Linux 2.1.125 0.114 0.181 0.260 0.339 0.429 0.529 0.621 0.715 0.805 0.903
FreeBSD 3.0 0.084 0.126 0.168 0.216 0.257 0.307 0.343 0.398 0.432 0.488
Sync-list-l5 (ls -l + sync):
N = 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
Linux 2.0.34 0.60 1.12 1.70 2.22 2.81 3.33 3.94 4.47 5.00 5.51
Linux 2.1.125 0.36 0.66 0.98 1.35 3.78 7.15 11.46 16.57 21.70 28.27
FreeBSD 3.0 0.45 0.83 1.23 1.63 2.02 2.44 2.83 3.28 3.66 4.08
Sync-remove (rm -r + sync):
N = 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
Linux 2.0.34 0.54 1.23 2.44 3.49 4.98 6.51 8.39 10.51 12.51 15.03
Linux 2.1.125 0.47 0.81 1.45 2.11 3.34 4.86 7.81 10.54 12.56 14.47
FreeBSD 3.0 0.87 1.61 2.54 3.48 4.43 5.58 6.52 7.88 8.99 10.44
Zaver si kazdy muze udelat sam. Ale jak je videt, v jadrech 2.1.X
s dostatecne vysokym X je nejspis neco velmi podezreleho - ne-li primo
nejaka hruba chyba ve zdrojovkach jadra (viz "ls -l" a "rm -r" pro pocet
souboru vetsi nez 5000).
(Absolutni vyse casu Linux vs. FreeBSD _neni_ rozumne srovnavat -
je nutne si uvedomit, ze zdrojove texty systemovych utilit a jadra se
znacne lisi a chovani obou systemu v tomto smeru bylo dost odlisne.
Spis je zajimave se zamerit na slozitosti.)
--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--
Rudolf Cejka (cejkar na dcse.fee.vutbr.cz; http://www.fee.vutbr.cz/~cejkar)
Technical University of Brno, Faculty of El. Engineering and Comp. Science
Bozetechova 2, 612 66 Brno, Czech Republic
Další informace o konferenci Linux