Linux 2.4 vs. 2.6 - HT vs. no HT

Címkék

Ma megjelent a 2.6-os kernel harmadik teszt verziója. Úgy gondoltam itt az ideje, hogy összehasonlítsam a 2.4-es kernellel. Mivel a 2.6-os (teszt) kernelt lassan 2-3 hónapja folyamatosan használom (a 2.5.70-től) és nekem megfelelően működik, nem a stabilitiására voltam kíváncsi. Inkább arra, hogy mit nyújt az új kernel a tipikus otthoni desktop felhasználónak. Így a teszteket nem arra hegyeztem ki, hogy hány ezer levelet tud elküldeni egységnyi idő alatt, vagy hogy mennyi idő alatt dumpol ki egy 500Mb-os MySQL adatbázist.

Inkább azt néztem meg, hogy átlagos otthoni alkalmazások futtatása mellett X-en, milyen sebességgel lehet kernelt fordítani, mennyi idő alatt fordul le az MPlayer G2, mennyi idő alatt tudok egy kis (14MB-os) filet gzip -9-cel összenyomni, és ugyanezt mennyi idő alatt tudom elvégezni mondjuk egy 780MB-os file esetén.

Lássuk a tesztkörnyezetet:A hardver:

Intel G845PEBT2 alaplap (82845G/GL [Brookdale-G] Chipset)

Intel(R) Pentium(R) 4 CPU 3.06GHz processzor 512KB cache

512MB DDR266 RAM

nVidia Corporation NV11 [GeForce2 MX/MX 400]

Intel Corp. 82801DB AC'97 Audio

Creative Labs SB Live! EMU10k1

CMD Technology Inc Silicon Image SiI 3112 SATARaid Controller

Intel Corp. 82801BD PRO/100 VE (LOM) Ethernet Controller

Intel Corp. 82801DB ICH4 IDE

Intel Corp. 82557/8/9 [Ethernet Pro 100]

Rendszer busz sebesség: 533MHz

Rendszer memória sebesség: 266MHz

cat /proc/cpuinfo

dmesg

Szoftver környezet:

Debian GNU/Linux testing/unstable 'Sarge'

gcc 3.3

A teszt ideje alatt próbáltam egy átlagos napi használat közbeni mérést készíteni. Így azok a programok futottak, amelyeket naponta használok:

  • Apache
  • MySQL
  • XFree86 Version 4.2.1.1
  • Blackbox
  • Xawtv
  • gkrellm
  • Evolution
  • Xchat
  • Mozilla
  • Konsole

    Mit mértem?

    A 2.6.0-test3 kernel (.config) fordítását 4 szálon (make -j4), az Mplayer G2 (mplayer-G2-preview39.tar.gz) fordítását egy szálon, az MatrixTeaser.avi tömörítését -9 kapcsolóval, és egy 780MB méretű bináris file tömörítését -9 kapcsolóval.

    Mire voltam kíváncsi?

    Egyrész kíváncsi voltam arra, hogy mennyit számit a sokat által feleslegesnek gondolt HyperThreading funkció egy desktop usernek, másrészt arra voltam kíváncsi, hogy mekkora különbség van a 2.4 és a 2.6 között.

    ---------------------------------------------------------------------

    Az első mérés:

    Linux sunshine 2.6.0-test3 #3 SMP 2003. aug. 9., szombat, 11.32.29 CEST i686 GNU/Linux

    Hyperthreading: bekapcsolva

    Linux 2.6.0-test3

    -------------------

    time make -j4

    real 5m55.902s

    user 9m56.570s

    sys 1m7.273s

    Mplayer G2

    ------------

    time make

    real 1m33.502s

    user 1m28.079s

    sys 0m5.968s

    GZIP

    -----

    time gzip -9 MatrixTeaser.avi

    real 0m1.472s

    user 0m1.381s

    sys 0m0.079s

    GZIP

    -----

    time gzip -9 tcf-2ftsa.bin

    real 1m56.111s

    user 1m23.169s

    sys 0m5.675s

    ---------------------------------------------------------------------

    Második mérés:

    Linux sunshine 2.6.0-test3 #3 SMP 2003. aug. 9., szombat, 11.32.29 CEST i686 GNU/Linux

    Hyperthreading: kikapcsolva

    Linux 2.6.0-test3

    -------------------

    time make -j4

    real 6m44.369s

    user 5m36.846s

    sys 0m51.390s


    Mplayer G2

    ------------

    time make

    real 1m35.131s

    user 1m26.337s

    sys 0m5.887s

    GZIP

    -----

    time gzip -9 MatrixTeaser.avi

    real 0m1.587s

    user 0m1.392s

    sys 0m0.120s

    GZIP

    -----

    time gzip -9 tcf-2ftsa.bin

    real 1m58.383s

    user 1m21.989s

    sys 0m6.045s

    ---------------------------------------------------------------------

    Harmadik mérés:

    Linux sunshine 2.4.21-pre5-ac2 #2 2003. már. 7., péntek, 22.53.21 CET i686 GNU/Linux

    Hyperthreading: kikapcsolva

    Linux 2.6.0-test3

    -------------------

    time make -j4

    real 6m19.478s

    user 5m28.210s

    sys 0m39.520s

    Mplayer G2

    ------------

    time make

    real 1m34.620s

    user 1m25.500s

    sys 0m5.020s

    GZIP

    -----

    time gzip -9 MatrixTeaser.avi

    real 0m1.608s

    user 0m1.390s

    sys 0m0.080s

    GZIP

    -----

    time gzip -9 tcf-2ftsa.bin

    real 1m58.769s

    user 1m20.470s

    sys 0m6.010s

    A számok magukért beszálnek. Én bevallom, hogy nagyobb különbségre számítottam a 2.4 és a 2.6 között a 2.6 javára. A tesztek alatt mindegyik rendszer használható volt, noha a 2.6.0-test3 négy szálon való futtatása közben 5-6-os load jött létre. A 2.6-os kernel azonban sokkal jobban kezelhető volt a fordítások alatt, mint a 2.4. Az ablakok között váltás sokkal könnyebb volt, nem volt az embernek az az érzése, hogy lassított felvételt néz. A 2.4-es kernellel a rendszer kicsit lomhábbnak tűnt. A HT-vel minden felgyorsult. Tehát érdemes volt bekapcsolni.

    Én azt hiszem, hogy a 2.6-os kernel igazán jó kernel lesz. Nem csak a nagygépes felhasználók fognak profitálni az előző másfél-két év fejlesztéséből.

  • Hozzászólások

    Én az egészhez csak annyit tennék hozzá, hogy a 2.5-ös fejlesztése alatt Linus szóvá tett vmi olyat, hogy a kernel által keltett "zajt" bootkor csökkenteni kell: ne írjon ki mindenféle eszközmeghajtó csomó fölösleges dolgot, csak a lényegeseket. Hát mintha ez nem sikerült volna, a dmesg-ből ítélve. :))))))))

    Ok!

    Köszönöm segítséged!

    Bye, Fifi

    >Nos akkor vmi nem stimmel én nem látok TV kártyát noha az xawtv naponta fut.

    Latom ertesz hozza. Ott a dmesg kimenete. El kene olvasni.

    [...]

    bttv0: Bt878 (rev 17) at 0000:02:03.0, irq: 19, latency: 32, mmio: 0xf42fd000

    bttv0: detected: Pinnacle PCTV [bswap] [card=39], PCI subsystem ID is bd11:1200

    bttv0: using: BT878(Pinnacle PCTV Studio/Ra) [card=39,autodetected]

    bttv0: i2c: checking for MSP34xx @ 0x80... not found

    bttv0: miro: id=16 tuner=1 radio=fmtuner stereo=no

    [...]

    >Másodszor ez a masina a klasszikus példa a hogy heréljük ki a P4-et lassú memóriával (kvázi alacsony memória-sávszélesség)

    Ez allt rendelkezesere. Egyebkent nem egy kepteszt volt. Hanem a teszt arrol szol, hogy egy ugyanazon konfigon mi tortenik akkor, ha valami be van kapcsolva, es mi tortenik akkor ha nincs. Az aranyok a fontosak a ketto kozott.

    >és csiga grafikus karesszal

    LOL. Igen a kernelforditas, es a gzip -9 legfontosabb eszkoze a Geforce 4 Ti.

    Az egész teszben számomra az a legérdekesebb, hogy azt írod, mi történik, ha mérés közben ablakot, stb-t váltasz. Ez nem hamisítja meg a mérést?

    Szerintem nem kéne mérés közben b*gatni a gépet, és hitelesebb lenne az eredmény. Pláne ha ilyen kis eltérések vannak.

    "tipikus otthoni desktop felhasználónak" szerintem nincs HTje :(

    HT kikapcsolva:

    2.6: 6m44.369s, 1m35.131s, 0m1.587s, 1m58.383s

    2.4: 6m19.478s, 1m34.620s, 0m1.608s, 1m58.769s

    Nekem ebbol az jon ki, hogy tobbszalu munkanal 2.4 jobb...

    "tipikus otthoni desktop felhasználónak"

    itt a szoftverkornyezetet ertettem. ahogy fel is volt sorolva hogy mik futottak

    lehet, hogy par masodperccel jobb a 2.4 abban a tesztben, de a interaktivitasa sokkal rosszabb volt. Osszesegeben ugy tunt nekem, hogy a 2.6 jobb volt mindegyik teszt alatt.

    Sziasztok!

    Nem szorosan kapcsolódik a témához, de ha már látom megragadom az alkalmat, hogy tanuljak ;)

    Ilyet, hogy lehet elérni:

    Linux sunshine 2.6.0-test3 #3 SMP 2003. aug. 9., szombat, 11.32.29 CEST i686 GNU/Linux

    Nekem eddig Debian alatt a processzor típusa mögött mindig unknown szerepelt. A makfile-ba kellene beleírni egy változót? A kernelt jóideje a make-kpkg paranccsal készítem.

    Előre is köszi!

    Bye, Fifi

    mihez kepest? ahhoz hogy az osszes uj p4 ben benne van/lesz, optimalizalt alkalmazas eseten akar 30%-ot is hoz?

    most ha veszel egy p4-et, es neked ingyen benne van, akkor mihez kepest nem eri meg?

    1.) nem eri meg bekapcsolni?

    2.) vagy nem ertelek

    "hát azért a nagy file tömörítésnél több, mint két perc az eltérés"

    Akarhogy nezem, ez csak ket masodperc.

    "akár 50%-kal is megnőhet"

    Hol? Milyen progival?

    Ugyanis egy egyszalon futo MPlayer/MEncoderrel nem hinnem...

    Amugy igaza van treynek, imho userek elsosorban orajel miatt veszen ilyen procit. Az meg hogy benne van HT is, az csak hab a tortan. Az viszont egyertelmu, hogy ha van HT, akkor be celszeru kapcsolni :)

    >Vagyis úgy kb. sz@rt se ér a hyperthreading.

    IBM develperWorks

    Hyper-Threading speeds Linux

    "Intel Xeon Hyper-Threading is definitely having a positive impact on Linux kernel and multithreaded applications. The speed-up from Hyper-Threading could be as high as 30% in stock kernel 2.4.19, to 51% in kernel 2.5.32 due to drastic changes in the scheduler run queue's support and Hyper-Threading awareness."

    Molnar Ingo HT scheduler patchevel kb. 50%-os gyorsulas erheto el tobbszalon futo alkalmazasok eseten (a legtobb alkalmazas ilyen). Ez "tenyeg" semmi.

    Inkabb mondjuk azt, hogy az alkalmazasok es operacios rendszerek 90% meg nem kesz a HT-re. De ne beszeljunk felre.

    Emlekszem amikor megjelent az MMX az osszes "hozzaerto" fuckolta. "Nincs hozza alkalmazas" "Eletkeptelen". Eltelt masfel ev, es az volt a csoda, ha talalt valaki olyan CPU-t es alkalmazast, ami nem tudta az MMX-et. Aztan sorra jelent meg minden CPU gyarto a sajat kis "MultiMedia eXtensoin" implmenetaciojaval.

    Mielott meg eltemeted en azt mondom varjunk meg.

    >A félreértések elkerülése végett: azért tűnt neked gyorsabbnak a 2.6 a fordítás alatt, mert benne van az O(1) scheduler (ami pont erre jó, tapasztalatom szerint), nem azért mert 2.6.

    Hat ez az :-) ettol 2.6. Mert benne van az O(1), a preempt, stb. A 2.4 meg attol 2.4, hogy ezek hianyoznak belole.

    FreeBSD 5.1 SMP + Hyperthreading Results

    A csavo FreeBSD-n futott egy CS szervert egy processzoron. FreeBSD 5.0-RELEASE-rol frissitett 5.1-RELEASE-re. A CS szerver 32 jatekossal 85%-90% CPU hasznalatot eredmenyezett a FreeBSD 5.0-val es a regi tipusu schedulerrel. Ugyanez a frissites utan, es a Hyperthreading engedelyezese utan (az uj ULE utemezovel) 11-12% lett.

    Csak szoftveres tamogatas kerdese az, hogy a HT-t ki tudod-e hasznalni vagy sem.

    Hat ezt azert jol elnagyolva irtad le :)

    Szoval az a 85-90% egy db Xeon-os gepen volt annyi. Kesobb tett bele meg egy procit. Es frissitette a FreeBSDjet + bekapcsolta HT-t.

    Lenyeg az (mint a levelbol is kiderult), hogy ugyanugy 85-90%-ot eszik egy logikai procin CS (mivel egy szalon fut), de van 4db logikai proci, igy jott ki osszesegeben a 11-12%.

    Igy mar egy kicsit elkepzelhetobb :)

    jah az egy cpu upgrade kimaradt. De ha igy vesszuk, igy sem ketszeres lett a gyorsulas (mint az az 1 cpu upgrade utan varhato lehetne), hanem 7x-es.

    Ezen kivul - mint a csavo is irja - ha a FreeBSD jobb smp tamogatast kapna, lehetne allitani a CPU affinitast akkor talan meg tobbet is ki lehetne hasznalni belole. Tehat nem az elkepzeles rossz, hanem egyelore tamogatas nincs hozza.

    Az hogy nincs egyelore tamogatas hozza, az nem egyenlo azzal hogy szar.

    Bocs, felreertettel vagy en fogalmaztam rosszul.


    A processzorcsaladot nekem is kiirja, de a GNU/Linux helyen van unknown.


    Tehat igy:

    Linux blackdragon 2.4.20 #1 SMP 2003. júl. 31., csütörtök, 19.38.59 CEST i686 unknown



    Bye, Fifi