Turris MOX a problém s rychlostí internetu

Zdravím, dlouhodobě se potýkám s problémem rychlosti. Mám přípojku 1Gb/s a pokud připojím zařízení přímo do modemu, tak měřená rychlost odpovídá lince, tj. 900Mb/s - 1Gb/s. Když ovšem to samé zařízení připojím přes MOX tak se rychlost nikdy nedostane nad 600Mb/s. Vše je připojené přes ethenernet, vnitřní síť je na 10Gb. Mox jsem po updatech i resetoval a nastavoval znova, ovšem k žádnému zlepšení nikdy nedošlo. Momentálně je na něm Turris OS 7.0.3.

Nesetkal se někdo s podobným problémem?

Zkuste vypnout adaptivní firewall – celý Sentinel.

Je to úplně nahý, jen základní setup po resetu do továrního nastavení.

Nejsem si jisty, ale neni Sentinel nahodou zapnuty by default?

Znovu jsem to vyresetoval, vyházel úplně všechny balíčky a změna žádná. Kabely (CAT6, CAT6a i CAT7) jsem překotroloval, otestoval a všechny jsou v pořádku.

Kdyz delate ten test rychlosti, otevrete si na moxu htop a koukejte, co se deje. Doporucuju v nastavenich zapnout detailed zobrazeni - pak je I/O zatez od site myslim fialova. Pokud to bude cele fialove, pak asi opravdu narazite na limity toho zarizeni. Pokud vystreli i neco zelenho (normalni programy), tak neco na ta tekouci data saha…

Můžete vyzkoušet toto:
Only one CPU core is used 100% during download/upload - Software / SW help - Turris forum

Ve zkratce, připojit se na MOX přes ssh a zadat:

echo 3 > /sys/class/net/eth0/queues/rx-0/rps_cpus
echo 3 > /sys/class/net/eth1/queues/rx-0/rps_cpus

Mám jen 250 Mb/s přípojku, ale pokud stahuji naplno, jedno jádro MOXu je skoro na 100 % a druhé má minimální zatížení. Po přenastavení se to chová lépe.

Sentinel není zapnutý by default.

A z osobní zkušenosti:

  • Vyměnil jsem nejstarší Omnii za Mox a muzu potvrdit totéž chování
    (zkoušel jsem Mox i na páteři Cesnetu…
    a na rozdíl od Omnie je rychlost tak 600 a něco mbs max.).

  • Nedávno jsem tu odpovídal v jiném postu na problém super pomalého Mox
    (to se projevuje jeste trochu jinak a tam skutecne i bylo vysoke IO,
    a problem ktery jsem uz opakovane videl,
    je zpusoben spatnymi kontakty sbernice Mox…
    ale to si myslim je jeste jiny problem, nez ten zmineny v tomto postu)

  • Rychlosti Moxe nepomaha zapnout packet steering.

  • Ani nepomaha zapnout software flow offloading.

Proste si myslím, ze rychlost 600Mb/s je standard Moxe…
CHANGE MY MIND

OK - tahle magie trosku pomaha,
ale jsem si jisty ze Omnie mi davala lepsi vysledky.
Zkusím ji vyhrabat a overit…

Jinak posílám celý výpis z příkazové řádky,
pro ty kteří chtějí zopakovat přesně co dělám.
A připojení mám 2Gb/s GPON od Nej nyní O2.
Realná rychlost merena nedavno na 10Gb/s x86 firewallu
byla hodně přes 1Gb/s.

root@firewall:/tmp# cd /tmp
root@firewall:/tmp# wget https://install.speedtest.net/app/cli/ookla-speedtest-1.2.0-linux-aarch64.tgz
--2024-11-01 23:24:32--  https://install.speedtest.net/app/cli/ookla-speedtest-1.2.0-linux-aarch64.tgz
Resolving install.speedtest.net... 199.232.18.219, 2a04:4e42:41::731
Connecting to install.speedtest.net|199.232.18.219|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1082287 (1.0M) [application/x-tar]
Saving to: ‘ookla-speedtest-1.2.0-linux-aarch64.tgz’

ookla-speedtest-1.2.0-linux-aa 100%[===================================================>]   1.03M  --.-KB/s    in 0.05s

2024-11-01 23:24:32 (22.1 MB/s) - ‘ookla-speedtest-1.2.0-linux-aarch64.tgz’ saved [1082287/1082287]

root@firewall:/tmp# tar -xvzf ookla-speedtest-1.2.0-linux-aarch64.tgz
speedtest
speedtest.md
speedtest.5
root@firewall:/tmp# ./speedtest

   Speedtest by Ookla

      Server: Nej.cz s.r.o. - Prague (id: 39677)
         ISP: O2 Czech Republic
Idle Latency:     1.94 ms   (jitter: 0.07ms, low: 1.82ms, high: 1.99ms)
    Download:   576.01 Mbps (data used: 259.0 MB)
                 11.01 ms   (jitter: 1.34ms, low: 4.99ms, high: 17.48ms)
      Upload:   605.50 Mbps (data used: 644.9 MB)
                  9.46 ms   (jitter: 2.58ms, low: 2.07ms, high: 23.76ms)
 Packet Loss:     0.0%
  Result URL: https://www.speedtest.net/result/c/fb7bfc12-cca2-4a92-b5d0-9ecbf5850693
root@firewall:/tmp# echo 3 > /sys/class/net/eth0/queues/rx-0/rps_cpus
root@firewall:/tmp# echo 3 > /sys/class/net/eth1/queues/rx-0/rps_cpus
root@firewall:/tmp# ./speedtest

   Speedtest by Ookla

      Server: Nej.cz s.r.o. - Prague (id: 39677)
         ISP: O2 Czech Republic
Idle Latency:     2.10 ms   (jitter: 0.17ms, low: 1.83ms, high: 2.38ms)
    Download:   761.43 Mbps (data used: 714.3 MB)
                  8.57 ms   (jitter: 2.03ms, low: 3.63ms, high: 22.50ms)
      Upload:   781.43 Mbps (data used: 1.1 GB)
                  8.73 ms   (jitter: 6.81ms, low: 2.00ms, high: 45.33ms)
 Packet Loss:     0.0%
  Result URL: https://www.speedtest.net/result/c/dbb82008-51fd-4cd4-beec-17d33fee232a

Provedl jsem měření opakovaně a je to docela konzistentní.

Takže se zapnutým Receive Packet Steering (RPS)
se zapsanou hodnotou 3 pro aktivni CPU core 0 a 1
tj. echo 3 > /sys/class/net/ethx/queues/rx-0/rps_cpus
to je trochu lepsi a dostavam 650-750Mb/s
(predtím maximálny rychlost 600Mb/s).
Pri této dosažené rychlosti je ale limitující CPU,
které dosahuje při zapnutém NATu 95-100% vytížení
(a to jak se zapnutým Sentinel nebo bez neho)

Muzu vyzkouset jeste jine optimalizace (RFS atd.)
ale vzhledem k zatezi na CPU neocekavam vyrazne zlepseni.

A to jsem si i myslel, ze MOX ma lepsi CPU nez Omnie,
ale asi to nebude jen tím CPU…

PS: Vse jsem zkousel na aktuálním TOS 7.0.3

Pozor, speedtestem bezicim na moxu nemusite spravne urcit jeho maximalni routovaci rychlost. Samotne generovani tech speedtestovych paketu sezere nejaky vykon, obzvlast ve vicevlaknovem rezimu. Za me by bylo nejlepsi zkontrolovat to speedtestem z nejakeho lan zarizeni.

Mám stejný problém na Turris 1.x. Jsem na optice 500/500. Dokud byl OS verze 6.x tak rychlosti od 490 do 510 v každém směru. Po přechodu na OS 7.x mám na downloadu max. 340 upload je stále OK.

Pravdu díš, mistře peci1.

Z nejakeho lan zařízení z Moxe vytáhnu max neco okolo 550Mbps,
Pak už je jedno CPU core na 100% a druhe na 80-90%
Tady se naplno projeví ještě NATování…

Proto jsem zkoušel přímo na Mox, protože to vždy poskytovalo nejlepší výsledky.

Nemám teď Turris 1.x na testování,
ale zde zmiňovaná rychlost Moxe,
mi přijde stejná na TOS 6.x a 7.0.x
a přijde mi jako vlastnost Moxe

S lan zařízením za NATem a Sentinelem, dostanu opakovatelně cca:
(samozřejmně MOX a poslední TOS 7.0.x
limitem rychlosti je vždy, že alespoň jedno jádro dosáhne 100% vytížení)

300-350Mb/s bez optimalizaci
550Mb/s pri RPS na obě jádra a packet steering
450Mb/s a 550Mb/s pri RPS pro eth0 eth1 kazdy na jinem jadru
(450Mb/s pro upload pokud je eth1 na cpu0 a obraceně pri eth0 na cpu0)
600Mb/s pokud zapnu RPS na obě jádra a ještě software flow offloading
(lze dosahnout pokud je slunce ve správném ascendentu
a tancujes destovy tanec pri uplnku a MOX je studeny a ja nevim co jeste)

Naměřené hodnoty jsou teoreticke,ale ukazují nějaké trendy
a rychlostní limity MOXe.