Počet IRQ/sec na paket při trafficu

Hamparle

  • ****
  • 302
  • junior developer ucho
    • Zobrazit profil
    • E-mail
Počet IRQ/sec na paket při trafficu
« kdy: 10. 12. 2020, 15:40:10 »
Spustil jsem monitor přerušení a sleduji počet přerušení za sekundu pokud probíhá traffic na routeru (při velkém downloadu (vnější je wlan); přímo stahuje stroj a nebo to forwarduje na jiný stroj v síti přes druhé další rozhraní)

Jde o rychlost kolem 5 MB/s. Při tom mám 15000 IRQ/s, Vychází to na 220-300 bajtů na IRQ. Při 1500b paketech tedy 5až7 IRQ/na paket (ignoruji ACK pakety, ale to je možná je nebezpečný krok zanedbání malého paketu, který ve výsledku nemá být ignorován, možná to zkreslí úvahu, ale vycházím z toho, že tyto ack pakety jsou menší a jsou tak v v poměru jeden ACK na 2-3 příchozí)

na jeden 1500b paket vychází 5-7 IRQ. Dá se to nějak Odůvodnit?
V příloze je screenshot z watch  -n 4 -d  cat/proc/inte...rupts po 4 sekundách(ty bílé obdélníky  je zvýraznění díky -d)

 .... mmc1 je pravděpodobně  wifi karta , řádek 56 je síťovka na USB, pak je tam DMA IRQ


při kopírování z eth0 to je 2 IRQ na 1500b paket



Co je ještě zajímavější, tento počet je uplně stejný při forwardování i při stahování přímo do zkoumaného stroje, a dokonce i při uploadu ... vypadá to jako kdyby traffic na eth generoval 3.5x méně přerušení , takže se to může zdát že při přenosu z wlan do stroje nebo forwardování  je celkový počet IRQ/paket skoro stejný


Je běžné, že obsluha paketu si žádá víc než 1 IRQ?
« Poslední změna: 10. 12. 2020, 15:44:44 od Hamparle »


Re:Počet IRQ/sec na paket při trafficu
« Odpověď #1 kdy: 10. 12. 2020, 22:53:08 »
Naše IGW


forward
364k  Interrupts
474k   Packetů
2,61 Gbit/s

Re:Počet IRQ/sec na paket při trafficu
« Odpověď #2 kdy: 11. 12. 2020, 07:03:11 »
Spustil jsem monitor přerušení a sleduji počet přerušení za sekundu pokud probíhá traffic na routeru (při velkém downloadu (vnější je wlan); přímo stahuje stroj a nebo to forwarduje na jiný stroj v síti přes druhé další rozhraní)

Jde o rychlost kolem 5 MB/s. Při tom mám 15000 IRQ/s, Vychází to na 220-300 bajtů na IRQ. Při 1500b paketech tedy 5až7 IRQ/na paket (ignoruji ACK pakety, ale to je možná je nebezpečný krok zanedbání malého paketu, který ve výsledku nemá být ignorován, možná to zkreslí úvahu, ale vycházím z toho, že tyto ack pakety jsou menší a jsou tak v v poměru jeden ACK na 2-3 příchozí)

na jeden 1500b paket vychází 5-7 IRQ. Dá se to nějak Odůvodnit?
V příloze je screenshot z watch  -n 4 -d  cat/proc/inte...rupts po 4 sekundách(ty bílé obdélníky  je zvýraznění díky -d)

 .... mmc1 je pravděpodobně  wifi karta , řádek 56 je síťovka na USB, pak je tam DMA IRQ


při kopírování z eth0 to je 2 IRQ na 1500b paket



Co je ještě zajímavější, tento počet je uplně stejný při forwardování i při stahování přímo do zkoumaného stroje, a dokonce i při uploadu ... vypadá to jako kdyby traffic na eth generoval 3.5x méně přerušení , takže se to může zdát že při přenosu z wlan do stroje nebo forwardování  je celkový počet IRQ/paket skoro stejný


Je běžné, že obsluha paketu si žádá víc než 1 IRQ?

Nápad od boku - nebloudí tam ten paket nějak? Měl jsem za to, že to bývá cca 1 přerušení na 1 paket nebo možná i míň, pokud jsou to nějaký chytrý karty (offload).

Re:Počet IRQ/sec na paket při trafficu
« Odpověď #3 kdy: 11. 12. 2020, 07:33:53 »
To je RPi3?

mmc0/1 je pro SD kartu. Pokud jsem to dobře pochopil, máš ethernet i wifi přes USB. USB2 má microframe 125us, tedy 8000 za sekundu. Klidně je možné, že řadič generuje IRQ při odchozím i příchozím, což dělá 16k/s. Velikostí síťového paketu na to asi nebude mít vliv, protože USB je pod tím.

RDa

  • *****
  • 1 193
    • Zobrazit profil
    • E-mail
Re:Počet IRQ/sec na paket při trafficu
« Odpověď #4 kdy: 11. 12. 2020, 13:35:53 »
To chce lepsi/chytrejsi kartu, kdyz to myslite se sitarinou vazne - takovou, ktera nedela IRQ na kazdej paket, to je totiz velice praveky pristup :)

https://en.wikipedia.org/wiki/Interrupt_coalescing


Re:Počet IRQ/sec na paket při trafficu
« Odpověď #5 kdy: 11. 12. 2020, 14:29:18 »
Je tam USB-ethernet převodník, ne klasická PCI-e karta.

Hamparle

  • ****
  • 302
  • junior developer ucho
    • Zobrazit profil
    • E-mail
Re:Počet IRQ/sec na paket při trafficu
« Odpověď #6 kdy: 11. 12. 2020, 20:06:46 »
Jo je, to RPI3. Paket tam nijak nebloudí (z síťového pohledu). Ta jeho interní wifi karta je  na nějaké mmc/sdio sběrnici (s sd kartou, možná je doukanálová) a ethernetová je na tom nešťastném USB bridgi.

Něco málo mám načteno o věcech jako Receive side scaling atd,  přiřazení jader streamům , ale už jsem to pozapomněl, je to z cloudflare blogu... Ale tam se jedná asi o řády Gbps.




Ani nechci vědět na kolika Hertzech ten IGW běží... Tedy ono asi nebude lineární, jinak by to muzel být THz počítač... Nebo tisícijádro

Re:Počet IRQ/sec na paket při trafficu
« Odpověď #7 kdy: 12. 12. 2020, 00:21:42 »
Jestli to je přes převodníky, tak bych se moc nedivil, zvlášť na RPI.