Nie, rozdielom nie je len cena, je to (najma ale nielen) vecou implementacie vnutornych pamati. Mepamatam si to presne, je to popisane (napr.) v knihe Micahela Lucasa "FreeBSD - sitovy os" a ide priblizne o to, ze pokial drahe karty z dobrou implementaciou vnutornych vyrovnavacich pamati zvladnu prave take narazy poziadaviek na spojenie, ako sa testuju v clanku, lacne karty tieto pamate nemaju a pri vyssej zatazi sa pakety (alebo este skor ramce) zacnu stracat, co si vynuti opakovanie paketov na urovni TCP, etc, cim sa dalej zvysi zataz, vznikne kladna spa:tna vazba a dosledky si kazdy domysli.
FreeBSD dokaze spolu s vyrovnavacimi pamatami v hw sietovych kariet dobre spolupracovat, ale karty bez tychto pamati sa vyslovene pre fbsd neodporucaju. Menovite Rlt8129/8139 su oznacene ako nevhodne cipy pre fbsd. Pamatam si to, lebo cistou nahodou mam na svojom desktope (pod fbsd) prave sietovku Rlt8139. Vyhodou tychto kariet je na druhej strane to, ze bezia snad aj na hriankovaci. :-)
3Com je strasny smejd, ktory by som bral tak za patinovu cenu 8139ny, ale nechajme to bokom...
8139 je naozaj dost malo vykonna, neda sa s nou dost dobre robit zero-copy a podobne. Podla mojich narychlo spravenych testov ma FreeBSDckovy komp s 8139 asi o 25-30% vyssiu zataz z preruseni ako rovnaky stroj s Intel EE100 (fxp driver - _bez_ nainstalovania vylepseneho mikrokodu - t.j. ifconfig fxpX -link0).
Na druhej strane pouzitie DEVICE_POLLING ma za nasledok zvysenie vykonu, ale hlavne znizenie zataze o niekolko radov. Aj pri 8139. Bez vyraznej stratovosti.
to jo
je to mnohem lepsi, nez 8139
ale je to neco, jako rozdil mezi D/A prevodnikem na paralelni port a SB16. Je to mnohem lepsi, ale porad to jeste nemusi byt ono. Napriklad 3comy podle mych zkusenosti obtizne zvladaji fullduplex, takze kartou se mi podarilo protlacit v jednom okamziku "jen" 100mbit. A pritom by to melo jit 100 kazdym smerem.
Tvrdenie by som rozhodne nepodlozenym nenazval. Musim uznat, ze architektura 8139 nie je dobra, ale 98% tych kariet proste ide ako po masle. V pripade 3Com sa to povedat neda a zazil som situacie, kedy sa proste 3Coma musela vymenit za 8139, aby siet isla. Minimalne 5%. Nevravim o pripadoch, kedy to chodilo len obcas a podobne.
Asi vsak mas/te iba 3Com zariadenia (switche, routre etc.), v takom pripade to tvrdenie moze prist nepodlozene, pretoze prave v tej konfiguracii to ide takmer 100%ne. Ale _len_ v tej konfiguracii. Poviem len jedine: Takto si kartu, za ktoru mozem mat 4x 8139, rozhodne nepredstavujem.
A ze ma viac vlastnosti? To sa mam nad tym vytesovat, kym mi nejde server?
Zaujala ma debata okolo sietoviek. Chcel by som stavat server a neviem, aku sietovku tam dat. Zrejme bude mat chipset nforce2 a teda NIC nVIDIA onboard 100/1000, ale je to dostatocne vykonne rozhranie? Alebo sa radsej spolahnut na pridavnu sietovku? A ak, tak co by som mal volit medzi 100MBit 3com a 1000Mbit Realtek? Pre ziadnu 1000Mbit 3com som v kerneli 2.6.3 nenasiel driver. Server bude aplikacny cize bude dost narocny na rychlost rozhrania.
U nas pouzivame na backbone uz mnou spominane Intely (fxp driver pod FBSD) a ja osobne by som sa uberal tym smerom. Bohuzial neviem povedat, ako su na tom gigabitove.
Asi som uz unaveny, ale nenasiel som tam OS. Ak chcete pouzivat FreeBSD, doporucujem kartu, ktora podporuje DEVICE_POLLING (za teoreticke marginalne zvysenie stratovosti, ktore som ale este nepozoroval, vyrazne znizila zataz stroja pri spracovavani sietoveho trafficu). Myslim, ze to podporuje vacsina gigabitov, zoznam 100viek je v polling(4).
Bylo tam prave to RTLko... Zkusil jsem tam ted dat 3Com905ku. Podle mne se to o neco malo zlepsilo (ony ty vysledky jsou ponekud fuzzy :-|), ale nijak vyrazne. 950 requestu za sekundu to porad nezvladalo. A volnou EtherExpress tady k dispozici nemam.
(BTW, s tou e100 jsem mel docela problemy, protoze jsem mel dve e100 karty, ktere se pod linuxem obcas nenahodily. Pod Woknama to jelo OK. Vyresil jsem to tak, ze jsem delal ifdown/ifdup dokud nezacaly na karte nabihat citace prijatych packetu :-)
(Just for fun.)
Vysledky su fuzzy? Vysledky su crisp hodnoty, akurat maju nejake statisticke rozdelenie nahodnej premennej. Fuzzy by v tomto pripade mohla byt interpretacia vysledkov, kedy by ste nadefinovali fuzzy mnoziny "A = vykonny server" a "B = slaby server", pricom by ste definovali funkcie prislusnosti k danym fuzzy mnozinam a to tak, ze by jeden vysledok mohol patrit napr. na 0,2 do mnoziny A a na 0,6 do mnoziny B. Ak by pre kazdy vysledok platilo ze stupen prislusnosti k A plus stupen prislusnosti k B je rovny jednej, vytvorili by ste dokonca fuzzy particiu.
Samozrejme, z matematickeho hladiska mozno brat kazde crisp mnoziny ako specialny pripad fuzzy mnozin. V danom pripade by mozno bolo namieste pracovat s tzv. fuzzy cislami, co sa ale v praxi -- zial -- malokde pouziva.
Ja vim, co je to fuzzy v matematickem slova smyslu, mam dokonce zkousku z fuzzy logiky ;-) Ja to myslel spis v puvodnim anglickem smyslu, t.j. "mlhave". Proste kolem toho bodu kde se to lame je to na ostri noze a obcas to ten pocet requestu zvladne a obcas ne. Ja jsem to bral tak, ze jsem pustil cca 5 testu a pokud to alespon jeden z nich zvladlo, tak jsem to bral.