Zatížení CPU při velkém síťovém provozu, software irq

JmJ

  • ****
  • 278
    • Zobrazit profil
Zdravim,

mam hodne slabe prumyslove PC, na kterem mi bezi starsi debian s na miru zkompilovanym kernelem. Pokud zacnu po siti na toto zarizeni posilat velke mnozstvi paketu, pak operacni system presune veskery vykon CPU na reseni softwarovych irq, coz vede k temer uplne smrti jinych dulezitych procesu.

Snazim se zjistit, zda ma toto nejake reseni, ktere nevyzaduje instalaci iptables (ci jineho sw) nebo prekompilovani kernelu. Instalace dodatecnych balicku je ale mensi zlo, nez novy kernel. Driver na sitovku by mel umet NAPI, ktere by snad nejak melo umoznovat, aby by pri velke zatezi se preslo z preruseni na polling ci tak neco, ale nemam to nijak overene. Obslouzit vsechny prichozi pakety neni nutnost, mrtva sit je akceptovatelny stav. Tedy dalsi moznosti je, nejak nastavit limit, kdy prichozi IRQ ze sitovky proste hodit po psovi. Pripadne nejak urcit prioritu zpracovavani softwarovych irq. Ovsem nemuzu obecne "zpomalit/omezit" softwarove IRQ, protoze k PC je pripojeno i dost jinych periferii, ktere musi reagovat co nejrychleji.

Zatim zkoumam co a jak, takze budu vdecny za nejake nasmerovani atd.
« Poslední změna: 25. 08. 2015, 21:34:27 od Roman Bořánek »


MP

Re:Zatizeni CPU pri velkem sitovem provozu, software irq
« Odpověď #1 kdy: 25. 08. 2015, 11:00:08 »
Co nastavit rate-limiting na switchi?

JmJ

  • ****
  • 278
    • Zobrazit profil
Re:Zatizeni CPU pri velkem sitovem provozu, software irq
« Odpověď #2 kdy: 25. 08. 2015, 11:03:21 »
Co nastavit rate-limiting na switchi?
Nemozno. Zarizeni samo musi umet se s tim vyporadat.

JmJ

  • ****
  • 278
    • Zobrazit profil
Re:Zatizeni CPU pri velkem sitovem provozu, software irq
« Odpověď #3 kdy: 25. 08. 2015, 11:11:35 »
Prave jsem zjistil, ze interrupt coalescing neumi driver pro mou sitovku zrejme nastavit.

ethtool -c eth0
Coalesce parameters for eth0:
Cannot get device coalesce settings: Operation not supported

Sitovka:

00:08.0 Ethernet controller: RDC Semiconductor, Inc. R6040 MAC Controller
        Kernel driver in use: r6040

MP

Re:Zatizeni CPU pri velkem sitovem provozu, software irq
« Odpověď #4 kdy: 25. 08. 2015, 11:23:57 »
Co nastavit rate-limiting na switchi?
Nemozno. Zarizeni samo musi umet se s tim vyporadat.

Z trabanta formuli neudelate aniz by jste zacali zahazovat neco pred dodatecny SW. Takze na tom budete uplne stejne, akorat misto prace switche to bude prace toho PC. Upgrade PC v ramci toho kernelu neni mozne ? disky, ram, a specialne cpu ?


gamer

Re:Zatizeni CPU pri velkem sitovem provozu, software irq
« Odpověď #5 kdy: 25. 08. 2015, 11:25:03 »
Můžeš zkusit snížit RX buffery na síťovce (ethtool -g eth0). Je to dost hack, ale mohl bys docílit toho co chceš, pakety začne zahazovat už síťovka a nedostanou se vůbec do kernelu.

JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Zatizeni CPU pri velkem sitovem provozu, software irq
« Odpověď #6 kdy: 25. 08. 2015, 11:27:28 »
Co presne znamena "Pokud zacnu po siti na toto zarizeni posilat velke mnozstvi paketu"? Predpokladam, ze tam poloucha nejaka aplikace. Neslo by pridusit sitovy provoz te aplikaci? Treba pres trickle, eventuelne trickled?

k

Re:Zatizeni CPU pri velkem sitovem provozu, software irq
« Odpověď #7 kdy: 25. 08. 2015, 12:03:51 »
Koupit Mikrotik nebo jinou schopnou krabici a dát to mezi PC a switch.

JmJ

  • ****
  • 278
    • Zobrazit profil
Re:Zatizeni CPU pri velkem sitovem provozu, software irq
« Odpověď #8 kdy: 25. 08. 2015, 12:05:29 »
Co presne znamena "Pokud zacnu po siti na toto zarizeni posilat velke mnozstvi paketu"? Predpokladam, ze tam poloucha nejaka aplikace. Neslo by pridusit sitovy provoz te aplikaci? Treba pres trickle, eventuelne trickled?

Zadna aplikace polsouchat nemusi. Konkretne to zahltim napr. UDP pakety o delce cca 100 bytu, kdyz je posilam z normalniho PC, ktere tvrdi, ze jich odesle pres 200 000 za sekundu.

JmJ

  • ****
  • 278
    • Zobrazit profil
Re:Zatizeni CPU pri velkem sitovem provozu, software irq
« Odpověď #9 kdy: 25. 08. 2015, 12:06:11 »
Co nastavit rate-limiting na switchi?
Nemozno. Zarizeni samo musi umet se s tim vyporadat.

Z trabanta formuli neudelate aniz by jste zacali zahazovat neco pred dodatecny SW. Takze na tom budete uplne stejne, akorat misto prace switche to bude prace toho PC. Upgrade PC v ramci toho kernelu neni mozne ? disky, ram, a specialne cpu ?

Upgrade nemozny. Je to "system on chip".

JmJ

  • ****
  • 278
    • Zobrazit profil
Re:Zatizeni CPU pri velkem sitovem provozu, software irq
« Odpověď #10 kdy: 25. 08. 2015, 12:10:49 »
Můžeš zkusit snížit RX buffery na síťovce (ethtool -g eth0). Je to dost hack, ale mohl bys docílit toho co chceš, pakety začne zahazovat už síťovka a nedostanou se vůbec do kernelu.

Bohuzel ani tohle mi neni prano, Operation not supported.

Kazdopadne zkusim zjistit, jestli se ethtool v kombinaci s driverem sitovky neda nejak rozchodit.

JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Zatizeni CPU pri velkem sitovem provozu, software irq
« Odpověď #11 kdy: 25. 08. 2015, 12:12:14 »
Konkretne to zahltim napr. UDP pakety o delce cca 100 bytu, kdyz je posilam z normalniho PC, ktere tvrdi, ze jich odesle pres 200 000 za sekundu.

A tech 200000 paketu za vterinu byste tam z toho PC posilal z jakeho duvodu? Abyste vyzkousel, ze to lze zaDoSovat? Tak budto mate duveryhodnou sit, tak tam ty pakety neposilejte. Nebo vase sit je cochcarna, kam si kdekdo prinese vlastni stroj a bavi se tim, ze vam posila UDP pakety, kam se mu zachce. Takze si nainstalujte iptables, ty vam stroj moc nezatizi a pokud UDP na tom stroji nepotrebujete, tak ho muzete take rovnou kompletne ustrihnout. Jinak, viz k, 12:03:51 - Mikrotik.

JmJ

  • ****
  • 278
    • Zobrazit profil
Re:Zatizeni CPU pri velkem sitovem provozu, software irq
« Odpověď #12 kdy: 25. 08. 2015, 12:18:20 »
Konkretne to zahltim napr. UDP pakety o delce cca 100 bytu, kdyz je posilam z normalniho PC, ktere tvrdi, ze jich odesle pres 200 000 za sekundu.

A tech 200000 paketu za vterinu byste tam z toho PC posilal z jakeho duvodu? Abyste vyzkousel, ze to lze zaDoSovat? Tak budto mate duveryhodnou sit, tak tam ty pakety neposilejte. Nebo vase sit je cochcarna, kam si kdekdo prinese vlastni stroj a bavi se tim, ze vam posila UDP pakety, kam se mu zachce. Takze si nainstalujte iptables, ty vam stroj moc nezatizi a pokud UDP na tom stroji nepotrebujete, tak ho muzete take rovnou kompletne ustrihnout. Jinak, viz k, 12:03:51 - Mikrotik.
A je to tu. Proste zarizeni musi takovemu naporu odolat. Tak to je a hotovo. Sit u toho muze umrit, ale jine procesy nesmi. Tvrzenim, ze k tomu vlastne vubec nesmi dojit, tu vec nevyresim. IpTables jsou resenim, jenze take bohuzel znamenaji rekompilaci kernelu.

k

Re:Zatizeni CPU pri velkem sitovem provozu, software irq
« Odpověď #13 kdy: 25. 08. 2015, 12:28:09 »
Proste zarizeni musi takovemu naporu odolat.

A) Napsat vlastní driver k síťovce a pokusit se emulovat interrupt coalescing.
B) Vykuchat vnitřnosti z Mikrotiku a vrazit je dovnitř zařízení.

Dada

Re:Zatizeni CPU pri velkem sitovem provozu, software irq
« Odpověď #14 kdy: 25. 08. 2015, 12:40:15 »
A je to tu. Proste zarizeni musi takovemu naporu odolat. Tak to je a hotovo. Sit u toho muze umrit, ale jine procesy nesmi. Tvrzenim, ze k tomu vlastne vubec nesmi dojit, tu vec nevyresim. IpTables jsou resenim, jenze take bohuzel znamenaji rekompilaci kernelu.

pokud to uz ted umira na premiru soft IRQ, tak je velka sance ze rozebehnutim iptables se to jeste zhorsi (v soft IRQ CPU stravi jeste vice casu diky pravidlum v iptables). Nevim kam ty UDP packety miri - jestli na neotevreny port (pak by dropnuti packetu mohlo usetrit cykly CPU diky negenerovani ICMP unreachable packetu) nebo na port obsluhovany nejakou aplikaci (pak by asi byla aplikace videt v zatizeni CPU)


IMHO to zarizeni nema HW vybavu na to  aby takovy napor vydrzelo. Chce to vykonnejsi CPU (Ghz + vice jader) a lepsi sitovku.