Mi az a Traefik?
A Traefik egy modern, hétrétegű fordított proxy és terheléskiosztó, amely egy alapvető koncepcióra – Service Discovery First-re épül.
A legnagyobb különbség a hagyományos fordított proxyktól (mint például a Nginx), hogy nem kell kézzel írni sok konfigurációs fájlt; a Traefik proaktívan "megfigyeli" a runtime környezetedet, és automatikusan generál útvonali szabályokat.
A "szolgáltatás konfigurációként" funkció miatt a Traefik különösen alkalmas az alábbi helyzetekre:
- Docker / Docker Compose
- Kubernetes (Ingress Controller)
- Mikroszolgáltatások architektúra
- Online szolgáltatások kis csapatoknak vagy független fejlesztőknek
Egyszerűen fogalmazva, ha a szolgáltatásod "dinamikus", a Traefik sokkal kevésbé problémamentes, mint a hagyományos visszaszolgáltatási ügynökök.
Benchmark
hajlam
Szeretném megköszönni exoscale.ch VincentBernatnak, aki nagylelkűen biztosította a benchmarkinghez szükséges infrastruktúrát.
Négy virtuális géppel teszteltem, a következőképpen konfigurálva:
32 GB memória 8 CPU mag 10GB-os szilárdtest-meghajtó Ubuntu 14.04 LTS 64-bites
Felállít
Virtuális gépet használnak a wrk benchmarking eszköz elindítására Egy virtuális gép Traefik (v1.0.0-beta.416) / nginx (v1.4.6) számára Ki konfigurál két virtuális gépet két háttérszerverhez a Go-ban? Minden virtuális gépet az alábbi korlátozások szerint hangoltak:
Nginx
Az alábbiakban a Nginx konfigurációs fájl /etc/nginx/nginx.conf használati módja:
Az alábbiakban a Nginx virtuális hegység konfigurációs fájljai találhatók:
Traefik
Az alábbiakban a traefik.toml fájljai szerepelnek:
eredmény whoami:
wrk -t20 -c1000 -d60s -H "Host: test.traefik" --latencia http://IP-whoami:80/bench 1 méteres teszt futtatása @ http://IP-whoami:80/bench 20 szál és 1000 kapcsolat Szál statisztikák Stdev Max átlag +/- Stdev Késleltetés: 70,28ms 134,72ms 1,91s 89,94% Req/sec 2,92k 742,42 8,78k 68,80% Késleltetési eloszlás 50% 10,63ms 75% 75,64ms 90% 205,65ms 99% 668,28ms 3476705 kérések 1,00 m-ben, 384,61MB olvasás Socket hibák: 0-t csatlakoztatni, 0-t olvasni, 0-t írni, időkorlát 103 Kérések/sekpozíció: 57894.35 Átvitel/másodperc: 6,40MB nginx:
wrk -t20 -c1000 -d60s -H "Host: test.traefik" --latency http://IP-nginx:8001/bench 1 méteres teszt futtatása @ http://IP-nginx:8001/bench 20 szál és 1000 kapcsolat Szál statisztikák Stdev Max átlag +/- Stdev Késleltetés: 101,25ms 180,09ms 1,99s 89,34% Req/sec 1,69k 567,69 9,39k 72,62% Késleltetési eloszlás 50% 15,46ms 75% 129,11ms 90% 302,44ms 99% 846,59ms 2018427 kérések 1,00 m-ben, 298,36MB olvasás Socket hibák: 0-t csatlakoztatok, 0-t olvasok, 0-t írni, időkorlát 90 Kérések/sekpozíció: 33591.67 Átvitel/másodperc: 4,97MB Traefik
wrk -t20 -c1000 -d60s -H "Host: test.traefik" --latency http://IP-traefik:8000/bench 1 méteres teszt futtatása @ http://IP-traefik:8000/bench 20 szál és 1000 kapcsolat Szál statisztikák Stdev Max átlag +/- Stdev Késleltetés 91,72ms 150,43ms 2,00s 90,50% Req/Sec 1,43k 266,37 2,97k 69,77% Késleltetési eloszlás 50% 19,74ms 75% 121,98ms 90% 237,39ms 99% 687,49ms 1705073 kérések 1,00 m-ben, 188,63MB olvasás Socket hibák: 0-t csatlakoztatok, 0-t olvasok, 0-at írni, idő-outot 7 Kérések/sec: 28392.44 Átvitel/másodperc: 3,14MB
következtetés A Traefik sebessége egyértelműen lassabb, mint Nginxé, de a különbség nem óriási: a Traefik másodpercenként 28 392 kérést kezel, míg a Nginx másodpercenként 33 591 kérést kezel, teljesítményarány 85%. Egy fiatal projektnek ez egészen jó :)!
Néhány fejlesztési terület:
Használj GO_REUSEPORT monitorokat
Minden CPU mag külön szerverpéldányt futtat, a GOMAXPROCS=1 (a benchmarkok szerint a Traefik sokkal több kontextusváltást kínál, mint az nginx).
Eredeti:A hiperlink bejelentkezés látható. |