❗️Toto je původní verze internetového fóra ISPforum.cz do února 2020 bez možnosti registrace nových uživatelů. Aktivní verzi fóra naleznete na adrese https://telekomunikace.cz

Výkon MK na x86

Problematika MikroTik RouterBoard hardware
tomcizech
Příspěvky: 44
Registrován: 14 years ago

Re: Výkon MK na x86

Příspěvekod tomcizech » 14 years ago

hafieror píše:Já se zeptám blbě, ale má takovéto problémy s propustností i RB1100AH?


Právě jsem testnul jednu RB1100AH u zákazníka a má ten samý problém. To co tu řešíme je IRQ load a celkově výkon MK vs. Debian, např. nat je úplně někde jinde, přece jenom x64 kopíruje data podstatně rychleji, zvládá větší tabulky, nemusí pro 64 bit counter spojovat 2 32 bitové apod..

hapi píše:update 3? co to je?


V prvním příspěvku doplňuji texty.
0 x
Říkejte mi o bezdrátu co chcete ale drát je drát, resp. vlákno je vlákno :)
tom@iczech.net

tomcizech
Příspěvky: 44
Registrován: 14 years ago

Příspěvekod tomcizech » 14 years ago

hapi píše:nevim či je to primárně způsobený a nechci tady kecat kraviny ale faktem je, že mikrotik padá na hubu pod zátěží IRQ. Nechci se tu dohadovat co je msi-x a čim dělá to že nevytěžuje procesor IRQčkama ale faktem je že linux s ethernety jede na msi-edge a je bez IRQ zátěže.

Pokud někdo ví jak se dostat do shellu linuxu pod mikrotikem, tak prosim PM.


Extended Message-Signaled Interrupts (MSI-X)

The ability to communicate efficiently between queues and
particular processor cores is handled by MSI-X. MSI-X is the next
generation of MSI, which passes interrupts to a single processor
core. Conversely, MSI-X provides multiple interrupt vectors, which
allow multiple interrupts to be handled simultaneously and loadbalanced
across multiple cores. This improvement helps improve
CPU utilization and lower latency.
The Intel 82575 Gigabit Ethernet Controller and the Intel 82598
10 Gigabit Ethernet Controller give each queue its own set of
MSI-X controllable interrupt vectors, which permits efficient
packet management and fine tuning of the processor load. With
an interrupt vector for each queue, the controller can handle
multiple interrupts simultaneously, preventing the bottlenecks
associated with funneling all interrupts through a single vector.
Figure 2 shows how these features work together to distribute
Ethernet traffic across CPU cores in a multi-core system

Více na http://download.intel.com/support/netwo ... 001us2.pdf

Důležité je spojit vše dohromady, je to na figure 2 toho PDFka.
Proto jsem při testování zapl CFLAGS_EXTRA=-DCONFIG_E1000E_SEPARATE_TX_HANDLER, InterruptThrottleRate dal na 3000 a IntMode dal na MSI-X. Mimochodem omlouvám se za chybu, při 3000 není latence na kartě 0,33ms, díky rozděleným frontám a rozkládání packetů na všechny jádra je to 0,33ms/4 tj. 0,0825 ms, vezmu latenci cpu, to že jedna karta je in a druhá out apod. a dostanete se právě na cca 0,2ms...
0 x
Říkejte mi o bezdrátu co chcete ale drát je drát, resp. vlákno je vlákno :)
tom@iczech.net

tomcizech
Příspěvky: 44
Registrován: 14 years ago

Příspěvekod tomcizech » 14 years ago

Mimochodem našel jsem hezky popsané jak MSI/MSI-X pracuje...

http://lwn.net/Articles/44139/
0 x
Říkejte mi o bezdrátu co chcete ale drát je drát, resp. vlákno je vlákno :)
tom@iczech.net

hafieror
Příspěvky: 616
Registrován: 19 years ago

Příspěvekod hafieror » 14 years ago

hapi píše:Jinak já jsem nedemonstroval problemy s propustností ale problem s vysokou zátěží CPU.


Při jakých tocích je problém? Já mam na jednom z hlavních routerů p4 asi 2,4Ghz 2 jádra. Při toku zhruba 275 Mbit a 3800 pravidlech v manglech mám vytížení zhruba 75 procent. Problémy s velkou latencí nepozoruji.
0 x

Uživatelský avatar
hapi
Příspěvky: 12989
Registrován: 18 years ago

Příspěvekod hapi » 14 years ago

nechci tu něco plácat ale x64 jádro ničemu moc nepomůže. Já to testoval s 32bit linux kernelem a hlavně bez zásahu do nastavení nebo ovladačů a pohoda. nat je jinde právě díky tomu že se procesor nemusí zasekávat na IRQčkách. Podle mě mezi debianem a mikrotikem nebude žádnej rozdíl po zprovoznění msi-x na mikrotiku. Běží tam stejný jádra i moduly. Ovšem aktuálně to stojí za houby.
Naposledy upravil(a) hapi dne 06 Jun 2011 20:46, celkem upraveno 1 x.
0 x
Supermicro + Mikrotik = SuperTik
high speed routery podle požadavků

Uživatelský avatar
hapi
Příspěvky: 12989
Registrován: 18 years ago

Příspěvekod hapi » 14 years ago

hafieror píše:
hapi píše:Jinak já jsem nedemonstroval problemy s propustností ale problem s vysokou zátěží CPU.


Při jakých tocích je problém? Já mam na jednom z hlavních routerů p4 asi 2,4Ghz 2 jádra. Při toku zhruba 275 Mbit a 3800 pravidlech v manglech mám vytížení zhruba 75 procent. Problémy s velkou latencí nepozoruji.


a na jakym OS ti to běží? jako nedá se říct že při 200Mbit budeš mít problem. Záleží na spoustě okolních věcí. Měřil si někdy ping z linux mašiny? Tam to totiž ukazuje podrobně latenci a je tam vidět jak se to zvedá.
0 x
Supermicro + Mikrotik = SuperTik
high speed routery podle požadavků

Walkeer
Příspěvky: 746
Registrován: 15 years ago
antispam: Ano

Příspěvekod Walkeer » 14 years ago

hele a podle ceho prosim usuzujes ze to je zatezi IRQ? jinymi slovy, jak se takova vec pozna?
0 x

Uživatelský avatar
hapi
Příspěvky: 12989
Registrován: 18 years ago

Příspěvekod hapi » 14 years ago

Pokud atakuješ procesor IRQčkama, výkon de dolu. Procesor musí vyřídit přerušení přednostně ať už tim že veme data ze sítovky a uloží do ramky pro další zpracování nebo něco jinýho ale musí se zastavit, z pravidla i vyprázdnit pipeline a zpracovat přerušení. To je masivní zátěž nebo spíš masivní plejtvání výkonem. Třeba už jenom proto, protože musí data dostat ze zařízení které je mnohem pomalejší než je procesor sám a tak musí čekat. Pokud to jede přes msi-x tak spoustu věcí s IRQčkama dělá extra věc v chipsetu a vyřizuje spoustu věcí za procák a dokonce ukládá data ze zařízeních do ramky za procák a jenom procáku řekne co má udělat a ten to zařadí lehce do normální fronty procesů. Je to napsaný velmi zjednodušeně a možná nepřesně.

Zátěž IRQ ukazuje jak mikrotik tak linux tak i ubiquiti a tvoří naprosto největší procento zatížení cpučka. Voshapovat 200Mbit provozu neni pro dnešní procesory vůbec nic náročnýho. Velký cache, rychlý ramky, rychlý zběrnice. Průser je v IRQ vytížení v OSkách co nepodporujou msi-x. V linuxu s podporou msi-x se i při 1Gbit procesor hodně nudí. Zajímalo by mě jak by si stál atom s msi-x při shapingu a nebo třeba zacate. Taková brána na 20W pro 200Mbit by byl luxus v mnoha směrech. Od mikrotiku se podporu msi-x nedočkáme ačkoliv tvrdí že je implemntovaná ale asi moc nefunguje.
0 x
Supermicro + Mikrotik = SuperTik
high speed routery podle požadavků

miract
Příspěvky: 1312
Registrován: 19 years ago
Kontaktovat uživatele:

Příspěvekod miract » 14 years ago

Mikrotik chce prodavat ty svoje predrazeny kramy. Jakykoliv router od mikrotiku nad RB450G jsou vyhozeny penize..
0 x

Uživatelský avatar
hapi
Příspěvky: 12989
Registrován: 18 years ago

Příspěvekod hapi » 14 years ago

co to má společního s x86?

jo jako souhlasim že nad RB450G jsou věci k ničemu. Tak to bohužel je. Ale co můžeme čekat od vykopávkách jako jsou mips procesory nebo ppc. Ale u obojího se opět setkáváme s většinovou zátěží díky IRQ. Značná část sítě nám teče přes RB450G a ta je vytížená tak na 30% a 29% z toho je vytížení IRQčkama.
0 x
Supermicro + Mikrotik = SuperTik
high speed routery podle požadavků

Walkeer
Příspěvky: 746
Registrován: 15 years ago
antispam: Ano

Příspěvekod Walkeer » 14 years ago

hapi píše:Pokud atakuješ procesor IRQčkama, výkon de dolu. Procesor musí vyřídit přerušení přednostně ať už tim že veme data ze sítovky a uloží do ramky pro další zpracování nebo něco jinýho ale musí se zastavit, z pravidla i vyprázdnit pipeline a zpracovat přerušení. To je masivní zátěž nebo spíš masivní plejtvání výkonem. Třeba už jenom proto, protože musí data dostat ze zařízení které je mnohem pomalejší než je procesor sám a tak musí čekat. Pokud to jede přes msi-x tak spoustu věcí s IRQčkama dělá extra věc v chipsetu a vyřizuje spoustu věcí za procák a

jasne ze IRQ znamenaji zatez je jasne

hapi píše:dokonce ukládá data ze zařízeních do ramky za procák a jenom procáku řekne co má udělat a ten to zařadí lehce do normální fronty procesů. Je to napsaný velmi zjednodušeně a možná nepřesně.

tomu se tusim rika DMA a funguje to i bez MSI-X od dob 486ek. Sefuje to DMA radic. MSI-X dela neco dost jineho: http://www.alexonlinux.com/msi-x-the-ri ... rrupt-load
ale ze to je tak mazany jsem taky netusil :)
hapi píše:Zátěž IRQ ukazuje jak mikrotik tak linux tak i ubiquiti

vyborne, prozradis nam nevedoucim jak konkretne to zjistujes? idealne nejaky prikaz prosim, dekuji
0 x

Uživatelský avatar
hapi
Příspěvky: 12989
Registrován: 18 years ago

Příspěvekod hapi » 14 years ago

DMA nepodporujou všechny karty a ethernety snad vůbec ale to nevim jistě.

tak klasicky příkaz "top" u ubiquiti a linuxu. Tam nahoře vidíš kolik a co ukusuje z procesoru. U linuxu jde použít klidně i dstat a spoustu jiných utilitek který ukážou zatížení IRQček ale top je nejsnažší. U mikrotiku je to v resources/cpu. Tam je vidět celková zátěž cpu a zátěž vyvolaná IRQčky.
0 x
Supermicro + Mikrotik = SuperTik
high speed routery podle požadavků

Walkeer
Příspěvky: 746
Registrován: 15 years ago
antispam: Ano

Příspěvekod Walkeer » 14 years ago

DMA samozrejme podporuji vsechny NIC krome starych 3com a XI-626, bez DMA by Gb NIC vubec nefungovaly. Alternativou k DMA je PIO, coz je v dnesnich systemech vpodstate nepouzitelne. To jen na okraj.

Ted k tomu topu. O ktere polozce konkretne si myslis, ze je IRQ load? Nevim jaky top pouzivas ty, ale ja jsem docela dost jisty, ze zadny bezny top IRQ zatez neukazuje, neni o tom ani zadna zminka v manualu. Samozrejme je take mozne, ze jsem mimo. Ted jsem konecne vygooglil utilitku, ktera irq ukazuje: mpstat z balicku sysstat.
0 x

miract
Příspěvky: 1312
Registrován: 19 years ago
Kontaktovat uživatele:

Příspěvekod miract » 14 years ago

hapi píše:co to má společního s x86?
...


Ja tim chtel jen rict, ze nas mikrotik tlaci do tech jeho predrazenych 1U krabic, nez aby udelali(hlavne jadro) rozumne podporu novych x86(PC). Z toho ze si nekdo koupi licenc L4 za par stovek maji mnohem mene nez z nejake RB1xxx za desitku ze...

Proto jak rikam, jedina rozumna cesta na vykone routery je x86 s linuxem. Ale na to prijde casem kazdy stredni poskytovatel. Pokud tedy neudela skok primo na cisco, sle tam je cena proti solidnimu x86 routeru tak ctyrnasobna. A nehlede na to, ze kdyz je tam linux, tak to muze delat dalsi prkotiny jako je dns, web, postovni server, statistiky, logovani...
0 x

Majklik
Příspěvky: 1949
Registrován: 14 years ago

Příspěvekod Majklik » 14 years ago

top umí ukazovat i procent od irq (jak skutečný čas HW handleru, tap pak up obsluhu). Stejně jak mpstat. Záleží na verzi.
Síťovky DMA umí vyjma pár kusů odjakživa. Jen od dob PCI se tomu říká podpora bus master. Jiná věc je, že některé drivery přesto používají PIO, protože v HW bývá tuna chyb, tak to vypínají. Velice vtipně se chovají některé čipsety pro Atomy, kdy se třeba integrovaná síťovka v busmaster režimu při komunikqaci aktivně potká s přístupem na legacy IO (např COM, LPT, ...), tak vede k seknutí chipsetu a podobné.
0 x