Ok, un nou episod din seria "HowTo-uri pe RLUG"...

A trebuit recent sa rezolv urmatoarea problema: trebuia sa fac un sistem
astfel incit sa fie foarte "responsive", sa aibe latenta cit mai mica,
si sa aibe disk I/O foarte bun.
Cam multe pretentiile... :-)

Solutiile, pina la urma, s-au legat atit de soft cit si de hard. In ce
priveste soft-ul, cel mai important a fost kernel-ul.

Practic, am testat trei kernele:
- kernel "vanilla" de pe kernel.org (asa-zisul "kernel pur")
- "vanilla" patch-uit cu Con Kolivas patch
- kernel-ul Red Hat

Nr 1 si 3 n-au nevoie de explicatii.
Nr 2 e un patch mentinut de individul asta, Con Kolivas, care e obsedat
cu "desktop responsiveness". Tipul aduna diverse patch-uri, unele
backportate din 2.5, si le aplica pe 2.4, avind ca unic scop sa faca
sistemul cit mai "sprinten" d.p.d.v. al userului de desktop.
Patch-ul e compatibil cu ALSA si driverele oficiale NVidia (cel putin
era asa ultima oara cind am testat, pentru ca n-am incercat si versiunea
de 2.4.21).

http://kernel.kolivas.net/

Exista si un benchmark pentru responsiveness (ConTest, numele e clar de
unde vine), dar testul cel mai simplu e "window wiggling" manual - adica
agati o fereastra cu mouse-ul si-o invirti viguros pe ecran, urmarind ce
se intimpla intre timp.

Testele mele au fost putin diferite, si oarecum subiective. Au implicat,
pe de o parte, rularea (sub incarcare CPU si/sau incarcare I/O) de
playere audio (xmms), video (gxine), sequencere MIDI, recordere digitale
si alte chestii sensibile la delay-uri; pe de alta parte, au implicat
pur si simplu transfer masiv de fisiere mari (GB) HDD --> HDD sau
DVD-ROM --> HDD.
Nu am cifre, sorry. De fapt, poate doar la transferul de fisiere aveau
sens cifrele, in rest nu prea (nu usor in orice caz).
Am compilat kernelele vanilla si CK cu optiuni similare celor folosite
de RH.
Sistemul a fost un AthlonXP, cu NForce (= GeForce2) si Audigy2.
Am folosit ALSA si driverul oficial NVidia.

Rezultate:

Kernel-ul "vanilla" (sau "kernel-ul asa cum e el pe kernel.org") a fost
cel mai prost la ambele categorii. Era destul de usor sa fac playerele
sa se poticneasca, sau recorderele sa piarda secvente. Transferul de
fisiere s-a facut lent (comparativ).

Kernel-ul Con Kolivas a fost extrem de responsive (cel mai!). Playerele
nu se poticneau decit daca ma straduiam intens. :-) Disk I/O a fost
putin mai bun ca la "vanilla".

Kernel-ul RH parea sa ramina responsive sub incarcari mari si constante.
Aici s-a apropiat de kernel-ul CK. Din nefericire, spike-urile de
incarcare (precum si chestiile stupide, gen frecat masiv de ferestre pe
un desktop cu accelerarea turned off) cam poticneau playerele. Oricum
s-a comportat mai bine ca vanilla. La disk I/O a dat clasa la celelalte
doua kernele, alerga ture in jurul lor. :-)

Evident, e o tona de YMMV p-aicea (cu alte cuvinte, nu tin cu dintii de
rezultate), mai ales avind in vedere modul "nestiintific" in care s-a
testat.
Pe de alta parte, rezultatele sint consistente cu ce am auzit pe la
altii care au incercat sa faca acelasi lucru.

Morala:
Vrei responsiveness? Atunci CK.
Vrei disk I/O? Atunci RH.
Vrei ambele? Atunci iti cumperi doua computere. :-P

/quit

-- 
Florin Andrei

http://florin.myip.org/


Raspunde prin e-mail lui