Freebsd dupla szélességű hatás

FreeBSD: két szélességű hatás

Tehát valami átmenetet jelent a 64 bites teljesítmény szempontjából? Ez a kérdés épp attól a pillanattól kezdve kínozta, amikor az AMD64-en autóztottam. És annak megpróbálására, hogy válaszoltam, ilyen kis vizsgálatot folytattam.

Mint ismeretes, a FreeBSD jelenlegi ág (ez még mindig a 6. béta) létezik a végrehajtás mindkét platformon -, és az i386, 32 bites, és AMD64 gép, 64 bites alapértelmezés (persze, a változat és több más platformon , de ennek semmi köze a kutatás tárgyához). És nem csak a megfelelő processzorfüggő zászlókkal, nevezetesen a forrásfában lévő független fióktelepekkel rendelkeznek. Tehát könnyebb egy 64 bites gépet felvenni a készpénzgépre, az egyik és a másik pedig az operációs rendszer, és elvégezheti a processzor teljesítményének vizsgálatát.

Mondta - kész: telepíteni a konfigurációs leírt egyik korábbi feljegyzések, mindkét változat a FreeBSD 6.0 beta 1, az aktuális akkoriban - az alap telepítés elvégzése optimalizálási intézkedések, mint például újjáépítése a kernel és a világban.

Teljesítmény tesztként nem gondoltam semmi jobbra, mint a GENERIC rendszermag összeszerelésére - olyan folyamat, amelynek időtartamát főként a "kő" sebessége határozza meg. Gyakorolt ​​hatásának minimalizálása érdekében a lemez alrendszer (és a megfelelő megjegyzés, azt láttuk, hogy az ilyen jelentős lehet) a / usr / obj tervezett köztes termékek összeállítása szerelt MFS - fájlrendszer RAM (Memory File System):
$ mdmfs -s 1024m md / usr / obj

Az MF (1024 MB) hangerő nagyságának korlátozása nagyon nagy margóval van elfoglalva, sőt, a rendszermag összeszereléséhez valamivel több mint 200 MB kerül felhasználásra. És - előre, a Kharkov:
$ cd / usr / src
$ csináld buildkrnel-t

a dátum parancs kimenetével az összeszerelés előtt és után egy fájlban az eredményekhez. Az idő rögzítéséhez használhatja az időparancsot is - de történelmileg még mindig a dátumot használtam.

Mindkét rendszerben az eljárást háromszor végezzük el, a könyvtár / usr / obj eltávolítása után minden alkalommal, az eredmény szerint az aritmetikai átlag kiszámítása, amelyet a táblázatba helyezünk.

Táblázat. Az GENERICAMD64 i386 AMD64-opt optikai átépítési ideje
678905642


Az eredmények azt kell mondanom, nekem kiderült, hogy némileg váratlan: a verzió i386 kernel fog átlagosan 15 perc, egy AMD64 - körülbelül 11. Vagyis a nyereség teljesítmény költözéskor 64 bites operációs rendszer elérte a közel 30% -a (ami jól látható a diagramon)

Ábra. A FreeBSD 32- és 64-bites változatainak összehasonlító teljesítménye a rendszermag összeállításakor

Felmerül a kérdés - vajon még lehetséges-e javítani a teljesítménymutatókat a további optimalizálás miatt? Végül is, a FreeBSD alapszintű rendszere alapértelmezés szerint az -O1 flag-val áll össze. Mivel jelenleg, az átmenet gcc verzió 3.4.x, akkor szigorúbb zászlók (egyes források szerint, akár -O3). Ellenőriztem: a 64 bites változat magja és "világa" újra össze van állítva
kivéve a felesleges (me) rendszermag-opciókat: SCSI és RAID vezérlők, redundáns hálózati adapterek, fel nem használt fájlrendszerek;
kivéve a "világ" felesleges összetevőket, mint a Kerberos;
optimalizálási zászlók
CPUTYPE = athlon64
CFLAGS = -O2 -cső
COPTFLAGS = -O2 -cső

Ezt követően háromszor megismételem a GENERIC rendszermagot. Az eredmény nem lenyűgöző - az átlagos összeállítás időtartama 10 percre csökken, kis (táblázat), azaz a kapott nyeremény nem éri el a 10% -ot. Ami azonban várható: az összes korábbi mérésem azt mutatta, hogy a legnagyobb sebességnövekedés az -O0-tól (vagyis az optimalizálás hiányától) az -O1-hez jut. Ezután néhány morzsát ki lehet húzni a -O2 zászlóval, de az -O3 jelző bizonyos esetekben a sebesség csökkenéséhez vezethet.

Mindazonáltal, a kimenet a szerencsés járművek tulajdonosai a AMD64 processzor világos: a használata a natív 64 bites FreeBSD jelentős teljesítménynövekedést (bár természetesen a valós felhasználói problémák ez akár 30% nem teszi).