Freebsd efect dublu-lățime

FreeBSD: efect dublu-lățime

Deci, orice face o tranziție la 64 de biți în termeni de performanță? Această întrebare ma chinuit din momentul în care am primit o mașină pe AMD64. Și în încercarea de a răspunde la aceasta, am efectuat o anchetă atât de mică.







După cum se știe, există FreeBSD ramura curentă (așa cum este în continuare a 6-beta), în punerea în aplicare pentru ambele platforme - și i386, 32-bit, și pe mașini AMD64, pe 64 de biți în mod implicit (desigur, este versiunea sa și mai multe alte platforme , dar acest lucru nu are nimic de-a face cu subiectul cercetării). Și nu sunt doar ansambluri cu steagurile corespunzătoare dependente de procesor, și anume ramificații independente din arborele sursă. Deci, ceea ce ar putea fi mai simplu - a pus pe o mașină de numerar pe 64 de biți, și el și cealaltă opțiune este de a sisteme de operare, și de a efectua orice test de viteza procesorului.

A spus - făcut: instalați în configurația descrisă într-una din notele anterioare, ambele versiuni de FreeBSD 6.0 beta 1, curentul la acel moment - în instalarea de bază, fără a efectua orice măsuri de optimizare, cum ar fi reconstruirea kernel-ul și lumea.

Ca să nu se gândească la ceva mai bun test de performanță decât nucleu construit GENERIC - procesul, a cărui durată este determinată în principal de viteza de „piatră“. Pentru a minimiza impactul subsistemului disc (și nota corespunzătoare, am văzut că o astfel poate fi semnificativ) în directorul / usr / obj, concepute pentru MFS montate produse intermediare de compilare - sistem de fișiere în memoria RAM (memorie File System):
$ mdmfs -s 1024m md / usr / obj

Limitarea volumului de mfs (1024 MB) este luată cu o marjă foarte mare, de fapt, pentru ansamblul kernel-ului vor fi utilizate mai mult de 200 MB. Și - înainte, în Harkov:






$ cd / usr / src
$ face buildkrnel

cu ieșirea comenzii de date înainte și după asamblare într-un fișier pentru rezultate. Pentru a stabili timpul, puteți folosi și comanda de timp - dar din punct de vedere istoric, am folosit încă data ca a mea.

În ambele sisteme, procedura este efectuată de trei ori, odată cu dezasamblarea directorului / usr / obj după fiecare dată, în funcție de rezultate se calculează media aritmetică, care este plasată în tabel.

Tabel. Durata medie de construire a nucleului GENERICAMD64 i386 AMD64-opt
678905642


Rezultatele, trebuie să spun, pentru mine sa dovedit a fi oarecum neașteptat: în versiunea de kernel i386 a fost de gând să medie de 15 minute, într-un sistem pentru AMD64 - aproximativ 11. Aceasta este, câștigul de performanță atunci când se deplasează la sistemul de operare pe 64 de biți sa ridicat la aproape 30% (care clar vizibil pe diagrama)

Figura. Viteza comparativă a versiunilor de 32 și 64 de biți ale FreeBSD la compilarea kernelului

Se pune întrebarea - este încă posibil să se îmbunătățească indicatorii de performanță datorită optimizării suplimentare? La urma urmei, în mod implicit, sistemul de bază din FreeBSD este compilat cu steagul -O1. Acum, odată cu trecerea la versiunea 3.4.X de la gcc, puteți utiliza stegulețe și mai stricte (conform unor informații, până la -O3). Verific: nucleul și "lumea" versiunii pe 64 de biți sunt reasamblate cu
excluzând opțiunile de kernel inutile (controale SCSI și RAID), adaptoare de rețea redundante, sisteme de fișiere neutilizate;
excluderea de la "lume" componente inutile precum Kerberos;
steaguri de optimizare
CPUTYPE = athlon64
CFLAGS = -O2-conductă
COPTFLAGS = -O2-tub

După aceea, repet asamblarea kernelului GENERIC de trei ori. Rezultatul nu a fost impresionant - timpul mediu de acumulare se reduce la 10 minute, cu un mic (Tabelul fig ..), adică câștigul obținut nu atinge chiar 10%. Ceea ce, cu toate acestea, este de așteptat: toate măsurătorile mele anterioare arată că cea mai mare creștere a vitezei se realizează prin trecerea de la -O0 (de exemplu, lipsa de orice optimizare) la -O1. Mai mult, unele resturi pot fi stoarse -O2 de pavilion, dar -O3 de pavilion, în unele cazuri, poate duce la o rată de reducere.

Cu toate acestea, producția pentru proprietarii norocos de vehicule cu procesor AMD64 este clar: utilizarea versiunii nativ pe 64 de biți FreeBSD oferă un impuls semnificativ de performanță (deși, desigur, pe probleme de utilizator real este de până la 30%, nu o face).







Trimiteți-le prietenilor: