Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 5|Atsakyti: 0

[Žiniatinklis] [Perpublikavimas] Traefik prieš Nginx oficialus etalonas

[Kopijuoti nuorodą]
PaskelbtaPrieš 11 minučių | | |
Kas yra Traefikas?

Traefik yra modernus septynių sluoksnių atvirkštinis proxy ir apkrovos balansavimo įrenginys, pagrįstas pagrindine koncepcija – Paslaugų atradimas pirmiausia.

Didžiausias skirtumas nuo tradicinių atvirkštinių proxy (pvz., Nginx) yra tas, kad nereikia rankiniu būdu rašyti daug konfigūracijos failų; Traefik proaktyviai "stebi" jūsų vykdymo aplinką ir automatiškai generuoja maršrutizavimo taisykles.

Dėl "service as configuration" funkcijos Traefik ypač tinka šioms situacijoms:

  • Docker / Docker Compose
  • Kubernetes (Ingress Controller)
  • Mikroservisų architektūra
  • Internetinės paslaugos mažoms komandoms arba nepriklausomiems kūrėjams

Paprasčiau tariant, jei jūsų paslauga yra "dinaminė", Traefik yra daug mažiau varginanti nei tradiciniai atvirkštiniai agentai.

Etalonas

Disponavimo

Noriu padėkoti exoscale.ch VincentBernat, kuris dosniai suteikė reikiamą infrastruktūrą palyginimui.

Išbandžiau naudodamas 4 virtualias mašinas, sukonfigūruotas taip:

32 GB atminties
8 CPU branduoliai
10GB kietojo kūno diskas
Ubuntu 14.04 LTS 64 bitų

Steigti

Virtuali mašina naudojama testavimo įrankiui wrk paleisti
Virtuali mašina Traefik (v1.0.0-beta.416) / nginx (v1.4.6)
Kas konfigūruoja dvi virtualias mašinas dviem backend serveriams Go programoje?
Kiekviena virtuali mašina buvo pritaikyta taikant šiuos apribojimus:
Nginx

Žemiau pateikiamas Nginx konfigūracijos failo /etc/nginx/nginx.conf naudojimo metodas:
Žemiau pateikiami naudojami Nginx virtualaus talpinimo konfigūracijos failai:
Traefik

Toliau pateikiami failai, naudojami traefik.toml:
Rezultatus
Whoami:
wrk -t20 -c1000 -d60s -H "Host: test.traefik" --delsos http://IP-whoami:80/bench
Vykdžiau 1 m testą @ http://IP-whoami:80/bench
20 gijų ir 1000 jungčių
Thread Stats   Avg      Stdev     Max   +/- Stdev
Vėlavimas 70,28 ms 134,72 ms 1,91 s 89,94%
Reikalavimai/sek. 2.92k 742.42 8.78k 68.80%
Delsos pasiskirstymas
50% 10,63 ms
75% 75,64ms
90% 205,65ms
99% 668,28ms
3476705 užklausų 1,00 m, 384,61MB skaitė
Lizdo klaidos: prijungti 0, skaityti 0, rašyti 0, laiko limitas 103
Prašymai/sekcija: 57894.35
Perdavimo per sekundę: 6,40MB

Nginx:
wrk -t20 -c1000 -d60s -H "Host: test.traefik" --delsos http://IP-nginx:8001/bench
Atlieku 1 m testą @ http://IP-nginx:8001/bench
20 gijų ir 1000 jungčių
Thread Stats   Avg      Stdev     Max   +/- Stdev
Delsimas 101,25ms 180,09ms 1,99s 89,34%
Reikalavimai per sekundę: 1,69 tūkst. 567,69 9,39 tūkst. 72,62%
Delsos pasiskirstymas
50 % 15,46 ms
75% 129,11 ms
90 % 302,44 ms
99% 846,59ms
2018427 užklausų 1,00 m, 298,36 MB skaitė
Lizdo klaidos: prijungti 0, perskaityti 0, parašyti 0, laiko limitas 90
Prašymai/sek.: 33591.67
Perdavimo per sekundę: 4,97MB

Traefik
wrk -t20 -c1000 -d60s -H "Host: test.traefik" --delsos http://IP-traefik:8000/bench
Atlieku 1 m testą @ http://IP-traefik:8000/bench
20 gijų ir 1000 jungčių
Thread Stats   Avg      Stdev     Max   +/- Stdev
Delsos laikas: 91,72 ms 150,43 ms 2,00 s 90,50%
Reikalavimai/sek. 1,43 tūkst. 266,37 2,97 tūkst. 69,77%
Delsos pasiskirstymas
50% 19,74 ms
75% 121,98 ms
90% 237,39ms
99% 687,49ms
1705073 užklausų 1,00 m, 188,63MB buvo
Lizdo klaidos: prisijungti 0, skaityti 0, rašyti 0, laiko limitas 7
Prašymai/sek.: 28392.44
Perdavimo per sekundę: 3,14MB

Išvada
Traefik greitis akivaizdžiai lėtesnis nei Nginx, bet skirtumas nėra didelis: Traefik apdoroja 28 392 užklausas per sekundę, o Nginx – 33 591 užklausą per sekundę, su 85 % našumo rodikliu. Jaunam projektui tai gana geras :)!

Keletas tobulintinų sričių:

Naudokite GO_REUSEPORT monitorius

Kiekvienas CPU branduolys vykdo atskirą serverio instanciją GOMAXPROCS=1 (testai rodo, kad Traefik turi daug daugiau konteksto perjungimo nei nginx).

Originalus:Hipersaito prisijungimas matomas.




Ankstesnis:Skirtumai tarp QTS ir QuTS Hero operacinių sistemų NAS
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com