On 04/09/2011 12:19 AM, Petru Ratiu wrote:
2011/4/2 Adrian Sevcenco<[email protected]>:
Salut! Cum pot sa indentific si sa urmaresc cauza pachetelor pierdute?
din cite vad traficul e la wirespeed si nu am load mare (cea mai mare parte
a traficului e dat de nat-ing (masina e gateway pentru ceva worker noduri
din spate))
e ceva natural ce se intimpla cind cererea de date e mai mare decit latimea
de banda existenta?

E putin aiurea sa vorbesti de "cerere de date",  mecanismul e mai
degraba pe sistemul "date bagate pe gat". Ethernetul fiind un mediu de
mda.. ma gindeam la consumatori (joburi)

broadcast (chiar daca de la raspandirea switchurilor nu mai e asa
evident), placa de retea asculta si "pescuieste" cat poate de repede
frame-urile pentru el. De obicei (cel putin pe arhitectura pc)
limitarea e data de cat de repede poate os-ul sa prelucreze irq-urile
placii, ceea ce poate tine si de load samd. E drept ca mai nou placile
de retea au tot soiul de buffere si chipuri de  offloading, dar pentru
volum suficient de mare de date tot acolo e bottleneckul. De asta, de
exemplu, ajuta sa activezi jumbo frames cand ai de impins catitati
huge de date. Tot de asta cand esti floodat se masoara pps
(packete/frames per secunda), pentru ca astea iti tin procesorul
ocupat.
mda.. e cazul sa trec la jumbo

Daca esti limitat de irq-uri, pe linux se vede threadul de kernel
ksoftirqd ca ocupand foarte mult cpu si in /proc/interrupts se poate
vedea daca e partajata intreruperea placii de retea cu altceva.

la acest trafic
http://rd.spacescience.ro:8080/display?imgsize=1024x600&interval.max=0&interval.min=3600000&modules=LAN%2Feth0&modules=LAN%2Feth1&page=LAN%2Falien&plot_series=eth0_IN&plot_series=eth0_OUT&plot_series=eth1_IN&plot_series=eth1_OUT

nu am load pe ksoftirqd .. iar interrupts par ok ca si balansare..

aliprod@alien: ~ $ grep eth /proc/interrupts
138: 2159 1033292288 3691 960461929 280504 990484118 7165851 961884603 PCI-MSI-X eth0-tx-0 146: 1780 1328132370 418 1304288941 60221237 1232598306 81012752 1258622927 PCI-MSI-X eth0-rx-0 154: 2032 1313063186 0 1324165076 56114403 1240725041 73365743 1287979051 PCI-MSI-X eth0-rx-1 162: 389 1246299568 1209 1459240243 55448067 1722086313 73414858 1289393486 PCI-MSI-X eth0-rx-2 170: 92 1261938762 14802 1286374498 55417981 1253783109 77192488 1380784062 PCI-MSI-X eth0-rx-3 178: 0 0 0 0 0 0 0 0 PCI-MSI-X eth0 194: 2083 1036005858 1140 948064464 756834 1003783840 7762867 949840313 PCI-MSI-X eth1-tx-0 202: 807 600603441 13343 583461849 111144184 593408144 101114338 601714680 PCI-MSI-X eth1-rx-0 210: 490 616473168 22233 627061247 110338588 609905337 95038332 598272789 PCI-MSI-X eth1-rx-1 218: 521 608003404 27815 592692707 110463812 593072570 97596782 602544457 PCI-MSI-X eth1-rx-2 226: 356 616235784 44929 599539028 107393459 598499874 96381812 598704986 PCI-MSI-X eth1-rx-3 234: 0 0 0 0 0 0 0 0 PCI-MSI-X eth1

desi e ciudat ca am pt fiecare interfata un tx si 4 rx-uri ...

irqbalance poate ajuta aici, la fel si folosirea de interfete bonding
in mod round-robin, ca sa folosesti mai multe irq-uri.
asta e in plan ... urmeaza sa pun o placa cu 4 porturi si sa le pun bonding 2 cite doua .. exista posibilitatea sa fac bonding si cu eth-urile onboard? (sunt aceleasi placi intel si deci acelasi driver .. teoretic nu ar tb sa dea circieci .. dar .. intreb sa fiu sigur :) )

Recunosc ca am vazut si ca FreeBSD se comporta mult mai bine
out-of-the-box cu numar mare de pachete pe secunda decat Linux,pe
acelasi hardware, asa ca sunt convins ca cei cativa BSD-isti de pe
lista ar fi incantati sa se laude :)

PS: Recunosc ca multe din lucrurile pe care le-am povestit le stiu cam
dupa ureche, asa ca rog pe colistasii mai cunoscatori sa-mi corecteze
prostiile si sa puna lucruri mai inteligente in loc ;)

HTH,
Merci!
Adrian

_______________________________________________
RLUG mailing list
[email protected]
http://lists.lug.ro/mailman/listinfo/rlug

Raspunde prin e-mail lui