Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 5|Odpowiedź: 0

[Web] [Ponowne opublikowanie] Traefik kontra Nginx Oficjalny Benchmark

[Skopiuj link]
Opublikowano11 minut temu | | |
Czym jest Traefik?

Traefik to nowoczesny, siedmiowarstwowy odwrotny proxy i load balancer, oparty na kluczowej koncepcji — Service Discovery First.

Największa różnica w porównaniu z tradycyjnymi proxy odwróconymi (takimi jak Nginx) polega na tym, że nie musisz ręcznie zapisywać dużej liczby plików konfiguracyjnych; Traefik proaktywnie "obserwuje" twoje środowisko uruchomieniowe i automatycznie generuje reguły routingu.

Dzięki funkcji "service as configuration" Traefik jest szczególnie odpowiedni w następujących scenariuszach:

  • Docker / Docker Compose
  • Kubernetes (Kontroler wejścia)
  • Architektura mikroserwisów
  • Usługi online dla małych zespołów lub niezależnych programistów

Mówiąc wprost, jeśli Twoja usługa jest "dynamiczna", Traefik jest znacznie mniej bezproblemowy niż tradycyjni agentzy odwróceni.

Benchmark

usposobienie

Chcę podziękować exoscale.ch Vincentowi Bernatowi, który hojnie zapewnił infrastrukturę niezbędną do benchmarkingu.

Przetestowałem to na 4 maszynach wirtualnych, skonfigurowanych następująco:

32 GB pamięci
8 rdzeni CPU
10GB dysk SSD
Ubuntu 14.04 LTS 64-bit

Zakładać

Do uruchomienia narzędzia benchmarkingowego wrk używa się maszyny wirtualnej
Maszyna wirtualna dla Traefik (v1.0.0-beta.416) / nginx (v1.4.6)
Kto konfiguruje dwie maszyny wirtualne dla dwóch serwerów backendowych w Go?
Każda maszyna wirtualna została dostrojona według następujących ograniczeń:
Nginx

Poniżej przedstawiono metodę użycia pliku konfiguracyjnego Nginx /etc/nginx/nginx.conf:
Poniżej znajdują się użyte pliki konfiguracyjne wirtualnego hostingu Nginx:
Traefik

Poniżej przedstawiono pliki używane dla traefik.toml:
wynik
Whoami:
wrk -t20 -c1000 -d60s -H "Host: test.traefik" --opóźnienia http://IP-whoami:80/bench
Robię test 1 m @ http://IP-whoami:80/bench
20 gwintów i 1000 połączeń
Statystyki wątku Średnia Maksymalny Poziom Tempa +/- TWzrost
Opóźnienia: 70,28ms, 134,72ms, 1,91s, 89,94%.
Wymagania/sekcje 2,92k 742,42 8,78k 68,80%
Rozkład opóźnień
50% 10,63ms
75% 75,64ms
90% 205,65ms
99% 668,28ms
3476705 żądań w 1,00m, 384,61MB odczytu
Błędy gniazda: connect 0, read 0, write 0, timeout 103
Liczba pśaktów/sek: 57894.35
Transfer/sek: 6,40MB

NGinx:
wrk -t20 -c1000 -d60s -H "Host: test.traefik" --opóźnienia http://IP-nginx:8001/bench
Przeprowadzam test 1 m @ http://IP-nginx:8001/bench
20 gwintów i 1000 połączeń
Statystyki wątku Średnia Maksymalny Poziom Tempa +/- TWzrost
Opóźnienia: 101,25ms, 180,09ms, 1,99s, 89,34%
Wymagania/sekcje 1,69 tys. 567,69 9,39 tys. 72,62%
Rozkład opóźnień
50% 15,46ms
75% 129,11ms
90% 302,44ms
99% 846,59ms
2018427 żądań w 1,00m, 298,36MB odczytu
Błędy gniazd: connect 0, read 0, write 0, timeout 90
Liczba próśb/sek: 33591.67
Transfer/sec: 4,97MB

Traefik
wrk -t20 -c1000 -d60s -H "Host: test.traefik" --opóźnienia http://IP-traefik:8000/bench
Wykonuję test 1 m @ http://IP-traefik:8000/bench
20 gwintów i 1000 połączeń
Statystyki wątku Średnia Maksymalny Poziom Tempa +/- TWzrost
Opóźnienie: 91,72ms, 150,43ms, 2,00s, 90,50%
Wymagania/sek 1,43k 266,37 2,97k 69,77%
Rozkład opóźnień
50% 19,74ms
75% 121,98ms
90% 237,39ms
99% 687,49ms
1705073 żądań w 1,00m, odczyt 188,63MB
Błędy gniazda: connect 0, read 0, write 0, timeout 7
Żądania/sek: 28392.44
Transfer/sek: 3,14MB

konkluzja
Szybkość Traefika jest wyraźnie wolniejsza niż Nginx, ale różnica nie jest duża: Traefik obsługuje 28 392 zapytań na sekundę, podczas gdy Nginx obsługuje 33 591 zapytań na sekundę, z wskaźnikiem wydajności na poziomie 85%. Jak na młody projekt, to całkiem niezły :)!

Kilka obszarów do poprawy:

Używaj GO_REUSEPORT monitorów

Każdy rdzeń CPU uruchamia osobną instancję serwera GOMAXPROCS=1 (benchmarki pokazują, że Traefik ma znacznie więcej przełączania kontekstu niż nginx).

Oryginał:Logowanie do linku jest widoczne.




Poprzedni:Różnice między systemami operacyjnymi QTS i QuTS Hero dla NAS
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com