Zadejte hledaný výraz...

Traffic shaping na Linuxu – tc, nebo jiný nástroj?

petrx
verified
rating uzivatele
(8 hodnocení)
21. 1. 2020 21:50:22
Prosím o nápovědu, jak nejlépe vyřešit traffic shaping na Linuxu, který by zbrzdilo HTTP requesty směřující na server, naopak odpovědi serveru potřebuji nechat rychlé.
Který nástroj byste mi doporučili?
21. 1. 2020 21:50:22
https://webtrh.cz/diskuse/traffic-shaping-na-linuxu-tc-nebo-jiny-nastroj#reply1434045
TomasX
verified
rating uzivatele
(4 hodnocení)
21. 1. 2020 22:04:10
proč?
Pokud to je pro webové aplikace, nejlepší je to řešit na přes http proxy (nginx, haproxy) pomocí jejich QoS.
21. 1. 2020 22:04:10
https://webtrh.cz/diskuse/traffic-shaping-na-linuxu-tc-nebo-jiny-nastroj#reply1434044
petrx
verified
rating uzivatele
(8 hodnocení)
21. 1. 2020 22:26:58
V nastavení QoS na nginx jsou různé zrady:
NGINX Rate Limiting
HAproxy vypadá lépe:
HAProxy Rate Limiting: Four Examples - HAProxy Technologies
ale pomocí traffic shapingu bych to vyřešil asi jednodušejí.
Ono to vypadá asi takto:
klient <-> reverzní proxy cache <-> zpracování dat <-> origin server
přičemž většina requestů se rovnou odbaví z reverzní proxy cache, potřebuji brzdit jen HTTP requesty z reverzní proxy cache na zpracování dat, odpovědi na ně nechť jsou již rychlé :-)
21. 1. 2020 22:26:58
https://webtrh.cz/diskuse/traffic-shaping-na-linuxu-tc-nebo-jiny-nastroj#reply1434043
TomasX
verified
rating uzivatele
(4 hodnocení)
21. 1. 2020 23:12:10
a proč to potřebuješ dělat?
Ono to totiž nejde tak jednoduše jak si myslíš, tcp komunikace je oboustranná, pro odeslání dat potřebuji přijmout ACK paket. Traffic shaping přidá obvykle delay (ale i pro ACK pakety) nebo omezuje velikost bufferu a pak dropuje pakety, opět neumí rozlišit data od ACK.
Naopak rate limiting v nginx/haproxy/varnish pracuje na mnohem vyšší úrovni, umožňuje nechat požadavky ve frontě a pouštět je na backend postupně.
Co myslíš těmi zradami? U obou můžeš nastavit jiné chování pro upstream (backend) url a pro ty odbavené přes cache. Co potřebuješ řešit? Podle mě na to jdeš špatně, takovéhle řešení jsem v produkcích ještě neviděl.
Pokud máš problém s přetěžováním backendu, kdy tam jde hodně požadavků najednou, můžeš hodit za sebe dva nginxy (jde to ale nastavit i v jednom, ale takhle to může být pro tebe jednodušší) nebo použít třeba varnish, který na rozdíl od ostatních umí hodit při paralelních dotazech na stejný zdroj na beckend pouze jeden request a vrátit ho všem najednou. U těch chudých, kteří nemají na F5 nasazuji tohle.
21. 1. 2020 23:12:10
https://webtrh.cz/diskuse/traffic-shaping-na-linuxu-tc-nebo-jiny-nastroj#reply1434042
Pro odpověď se přihlašte.
Přihlásit