FreeBSD versus Linux avagy Cox tévedett ?

 ( trey | 2001. november 13., kedd - 15:22 )

A Linux és a *BSD felhasználók mindig is hadban álltak egymással. Mindegyikük esküszik a saját rendszerére, a saját igazát bizonygatja. Egy valamiben értenek talán csak egyet, a MicroSoft termékeinél minden jobb =].

Most egy tesztet készített Moshe Bar (nem az elsőt), amely azt hivatott vizsgálni, hogy a Linux új VM -je, vagy a FreeBSD virtuális memóriakezelése teljesít-e jobban.

Mint tudjuk a Linux VM -et (virtual memory manager) teljesen újraírták. Az új kódot Andrea Arcangeli kernelhacker írta. Moshe arra volt kíváncsi, hogy mennyire sikerült az új kód. Emlékezhetünk rá, hogy Alan Cox tiltakozott az új VM ellen, Linus viszont támogatta. Aztán Cox beadta a derekát, és a 2.4.10 -től kezdve az új VM szerepel a Linux kernelforrásban. Moshe azért készítette a tesztet, mert sokan azt állították, hogy a FreeBSD virtuális memória kezelése sokkal jobb, mint a Linux -é, és ezt szerette volna adatokkal igazolni, vagy cáfolni.

Készített egy tesztrendszert, amelyben különböző méréseket végzett. Lássuk mik voltak ezek.

A tesztrendszer

A tesztrendszer szervere egy Compaq ProLiant ML570 -es volt 3 GB RAM -al és két Xeon 900-MHz processzorral, de a mérések idejére a fizikai memória méretét lecsökkentette 512 MB -ra. Ez azért volt szükséges, mert nem a szerver teljesítményét akarta mérni, hanem a két OS virtuális memória kezelésére volt kívácsi. A Storage egy integrált Ultra-2 SCSI controller -en keresztül meghajtott négy 36 GB -os egység volt. Ez a gép teljes mértékben támogatott mind Linux, mind FreeBSD alatt. Moshe a kliens oldalon egy Mosix cluster -t használt amely négy node -ból állt, egy dual Xeon 500 -ból, és három IBM Netfinity 3500 -asból, amelyek 733-MHz -es processzorral voltak szerelve. Mindegyik gép 1 Gb RAM -al rendelkezett. A cluster egy 1Gbit segességű switch -elt hálózaton kapcsolódott a szerverhez.
A rendszerek tuningolása

FreeBSD:

A FreeBSD OS jelentősen gyorsabb, ha használjuk az ún. softupdate -eket a filerendszerhez. Ezeket a softupdate -eket Marshall McKusick (egy core FreeBSD fejlesztő) implementálta a FreeBSD -be. Ez softupdate egy kiterjesztése a belső filerendszer kódnak, és ennek segítségével képes a rendszer metadata műveletek elvégzésére. A softupdate függvény az összes I/O kérést átirányítja a filerendszernek, amely mindig metadata formában írja az adatokat, és így garantálható, hogy a filerendszer nem kerül meghatározhatatlan állapotba. Ez nagyon hasonlít az async ext2 file műveletekre. Ezzel egyidőben megemelte a maxusers változó értékét az alap 4 ről 20 ra. Ezt az értéket 4 és 84 között lehet módosítani, a szerver terheltségétől függően. Végül letiltotta az inode -ok timestamp -jét.

Linux:

A Linux oldalon az összes hálózati kártya megszakítást átirányította az egyik CPU -hoz.

A teszt

Mivel a tesztek a VM telesítményének a mérésére készültek, Moshe egy rakás stress tesztet készített. A hálózatos teszteket Sendmail és MySQL -el végezte, HTML tesztként különböző CGI scripteket futtatott. Az összes teszt úgy volt tervezve, hogy a fizikai memória kevésnek bizonyuljon, tehát a rendszer rá volt kényszerítve a swap -elésre. A több órán keresztül terhelték a rendszert, és a filerendszert. Például a MySQL teszt abból állt, hogy létrehozott egy 27 millio rekordból álló adatbázist, ezután a kliensekkel különböző tranzakciókat hajtott végre ezen az adatbázison. A Sendmail tesztnél a kliensek egy MIME kódolt, 1.90-KB melléklettel rendelkező üzenetet küldtek. Természetesen mindkét operációs rendszer ugyanazon Apache webszervert, Sendmail MTA -t, és azonos verziójú MySQL szervert futtatott.

Az eredmények:

Moshe februárban készített egy hasonló tesztet, az akkor újnak számító Linux 2.4 -es kernel -el. Abban a tesztben a Linux gyengébben szerepelt a FreeBSD -nél. Volt olyan eset, hogy a Linux -ot nem lehetett a teszt ideje alatt hálózatról elérni, akkora volt a rendszer load -ja. Ezt a hátrányt a FreeBSD -hez képest a mostani teszt alatt nem tudta reprodukálni, pedig a stress tesztek több órán keresztül folytak. Mindkét rendszer stabilan működött, nem voltak rendszer crash -ek, és mindkét rendszer mindvégig elérhető volt. A tesztek során hol a Linux, hol a FreeBSD volt a jobb, azonban jelentős különbséget nem lehetet tapasztalni (ez nem így volt a februári teszt során, ahol a teszt eredményei egyértelműen a FreeBSD mellett szóltak).

Moshe szerint most jött el az idő amikor eljutottunk oda, hogy egy jól működő, nagyon stabil, jól teljesítő Linux kernelhez jutottunk. Bár szerinte, azt se kell eltitkolni, hogy a FreeBSD stabil és gyors (gyorsabb mint valaha). A 2.4 -es Linux kernel kezdi kinőni a kezdeti gyerekbetegségeit, szerinte nincs miért tovább a 2.2 -es kernel -eket használni, hiszen a 2.4 -es kernel -ek magasan a 2.2 -es kernel -ek felett teljesítenek.

Tehát ez a teszt is azt támaszja alá, hogy Cox -nak nem volt igaza a régi VM -el kapcsolatban, az új VM jobb a réginél, a fejlesztők is ezt a vonalat követik. Aki a pontos tesztadatokra kíváncsi az eredeti cikket elolvashatja itt.

Moshe Bar rendszeradminisztrátor és OS kutató, aki olyan Unix rendszereken kezdett tanulni mint például a PDP-11 AT&T UNIX Release 6 operációs rendszerrel, ezenkívül számos Unix jellegű könyv szerzője.

A Linux VM -hez kapcsolódó írások:


Két részre szakad a Linux fejlesztők közössége?

Linus és Alan megegyeztek a Linux VM ügyében

Alan Cox: 2.4 kernel karbantartás és öröklés

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Tévedett? lehet, bár az utóbbi idöben erösen AC-hívö lettem :) Nekem a 2.4-es sorozatnak nem a sebességével volt bajom (számomra nem kritikus a sebesség), inkább a stabilitásával. A 2.4.10 (amiben az új VM elöször megjelent) már bizonytalan volt, a 2.4.11-et felejtsük el, de a 2.4.12-ért sem voltam oda, pedig extra dolgok nincsenek is a gépemben.

Ha a 2.4.14 és késöbbi kernelek -ac patch nélkül is fognak normálisan müködni, annak nagyon fogok örülni, függetlenül attól, hogy milyen VM van benne, mert az utóbbi idöben elvesztetttem a bizalmam a 'stabil' kernelben. Lassan olyan érzésem van, mintha folyamatosan fejlesztöi kernelt használnék.

Az sajnos kimaradt a cikkböl (és a link jelenleg döglött, nem tudom megnézni az eredetit :(( ), hogy milyen verziójú kernellel végezték a tesztet.

Valóban a stabilitás fontosabb, mint az alig mérhető teljesítményjavulás. Viszont itt arról is volt szó, hogy a 2.4.0 kernel lehalt a nagy load -nál. Amúgy AC -t tényleg sokan támadják most, pedig szerintem se kéne. Ő lehet, hogy a stabilitást részesítené előnyben a sebességgel szemben. A cikk írója nem tért ki a kernel számára a cikkben, legalábbis nekem nem tűnt fel. De szerintem nem standard kernelt használt, ahogy a Moshe -t ismerem tuti valamilyen általa módosított kernel volt.