Pular para o conteúdo principal

Benchmarks

Este documento apresenta os resultados de benchmark do edgeProxy com rede overlay WireGuard em localizações globais.

Setup da Infraestrutura

Para detalhes sobre como configurar a infraestrutura AWS EC2 e WireGuard usada nestes testes, veja Deploy AWS EC2.


Benchmark v3 (Atual) - WireGuard Full Mesh

Melhoria Significativa

Após migrar de hub-and-spoke para full mesh, a latência APAC melhorou ~2x.

Infraestrutura de Teste

ComponenteDetalhes
POPGCP Hong Kong (asia-east2)
IP35.241.112.61:8080
Regiãoap (Ásia Pacífico)
Backends10 (via WireGuard full mesh)
TopologiaFull mesh (HKG conecta diretamente a NRT/SIN/SYD)

Resultados dos Testes (Full Mesh)

#Localização VPNPaísBackendHostLatênciaAntes (Hub)Melhoria
1-3🇨🇳🇭🇰 China/HKCN/HKHKG---⏭️ (POP local)
4🇯🇵 TóquioJPNRT08016e2f~760ms1.79s2.3x
5🇸🇬 SingapuraSGSIN6837391c~895ms1.63s1.8x
6🇹🇼 TaiwanTWNRT08016e2f~753ms1.64s2.2x
7🇰🇷 SeoulKRSIN6837391c~800ms1.71s2.1x
8🇮🇳 ÍndiaINIAD-timeout*1.58s-
9🇦🇺 SydneyAUSYD-~1.0s**1.94s~2x

*VPN timeout durante teste **Estimativa baseada em latência mesh

Precisão do geo-routing: 6/6 (100%)

Latência WireGuard Mesh (do HKG)

Antes (Hub-and-Spoke via EC2 Irlanda)

BackendIP WireGuardLatência Ping
EC2 Irlanda (Hub)10.50.0.1242ms
NRT (Tóquio)10.50.4.1492ms
SIN (Singapura)10.50.4.2408ms
SYD (Sydney)10.50.4.3~500ms

Depois (Full Mesh Direto)

BackendIP WireGuardLatência PingMelhoria
NRT (Tóquio)10.50.4.149ms10x
SIN (Singapura)10.50.4.238ms10.7x
SYD (Sydney)10.50.4.3122ms~4x

Configuração Full Mesh

O POP HKG agora conecta diretamente aos backends APAC sem passar pelo hub EC2 Irlanda:

# HKG WireGuard config (/etc/wireguard/wg0.conf)
[Interface]
PrivateKey = <HKG_PRIVATE_KEY>
Address = 10.50.5.1/24
ListenPort = 51820

# EC2 Ireland (para backends não-APAC)
[Peer]
PublicKey = bzM6rw/efq+75VGhBgkCRChDnKfFlXQY560ejhvKCQY=
Endpoint = 54.171.48.207:51820
AllowedIPs = 10.50.0.1/32, 10.50.1.0/24, 10.50.2.0/24, 10.50.3.0/24
PersistentKeepalive = 25

# NRT - Tokyo (direct mesh)
[Peer]
PublicKey = 9ZK9FzSzihxrRX9gktc99Oj0WFSJMa0mf33pP2LJ/lU=
AllowedIPs = 10.50.4.1/32
PersistentKeepalive = 25

# SIN - Singapore (direct mesh)
[Peer]
PublicKey = gcwoqaT950PGW1ZaUEV75VEV7HOdyYT5rwdYOUBQzR0=
AllowedIPs = 10.50.4.2/32
PersistentKeepalive = 25

# SYD - Sydney (direct mesh)
[Peer]
PublicKey = 9yHQmzbLKEyM+F1x7obbX0WNaR25XhAcUOdU9SLBeEo=
AllowedIPs = 10.50.4.3/32
PersistentKeepalive = 25

Executando Testes v3

# Testar conectividade ao POP HKG
nc -zv 35.241.112.61 8080

# Teste rápido de latência
for i in {1..10}; do
curl -w "%{time_total}s\n" -o /dev/null -s http://35.241.112.61:8080/api/latency
done

# Verificar geo-routing (agora inclui hostname)
curl -s http://35.241.112.61:8080/api/info | jq .
# Retorna: {"hostname":"08016e2f","region":"nrt","region_name":"Tokyo, Japan",...}

Observações v3

  • Full mesh reduz latência APAC em ~2x comparado com hub-and-spoke
  • HKG conecta diretamente a NRT/SIN/SYD (38-122ms) ao invés de passar pelo EC2 Irlanda (400-500ms)
  • Todo tráfego APAC corretamente roteado para backend regional mais próximo
  • Taiwan e Coreia roteiam para backend APAC mais próximo
  • Índia roteia para IAD (Virginia) - sem backend APAC mais próximo
  • hostname agora visível nas respostas para identificar qual VM está respondendo

Benchmark v2

Todos os Testes Passaram
  • Geo-Routing: 9/9
  • WireGuard: 10/10 peers
  • Status: Completo

Resultados dos Testes

#Localização VPNPaísBackendLatênciaDownload 1MBDownload 5MBRPS (20)Status
1🇫🇷 ParisFRCDG530ms0.5 MB/s2.1 MB/s35.7
2🇩🇪 FrankfurtDEFRA528ms0.6 MB/s2.3 MB/s34.0
3🇬🇧 LondresGBLHR490ms0.6 MB/s2.3 MB/s36.6
4🇺🇸 DetroitUSIAD708ms0.6 MB/s2.5 MB/s27.4
5🇺🇸 Las VegasUSIAD857ms0.5 MB/s2.2 MB/s22.5
6🇯🇵 TóquioJPNRT1546ms0.3 MB/s1.1 MB/s12.6
7🇸🇬 SingapuraSGSIN1414ms0.3 MB/s1.2 MB/s13.8
8🇦🇺 SydneyAUSYD1847ms0.2 MB/s0.9 MB/s10.7
9🇧🇷 São PauloBRGRU822ms0.4 MB/s1.6 MB/s23.3

Performance por Região

RegiãoLatênciaObservação
🇪🇺 Europa (CDG/FRA/LHR)490-530msMelhor - mais próximo do EC2 Irlanda
🇺🇸 EUA (IAD)708-857msMédio - atravessa Atlântico
🇧🇷 Brasil (GRU)822msBom - rota direta
🇯🇵🇸🇬 Ásia (NRT/SIN)1414-1546msAlto - distância geográfica
🇦🇺 Oceania (SYD)1847msMais alto - metade do mundo

Arquitetura de Teste

Arquitetura do Benchmark


Validação do Geo-Routing

Todos os 9 testes VPN rotearam corretamente para o backend esperado:

Localização do ClienteEsperadoAtualResultado
🇫🇷 FrançaCDGCDG
🇩🇪 AlemanhaFRAFRA
🇬🇧 Reino UnidoLHRLHR
🇺🇸 Estados UnidosIADIAD
🇯🇵 JapãoNRTNRT
🇸🇬 SingapuraSINSIN
🇦🇺 AustráliaSYDSYD
🇧🇷 BrasilGRUGRU

Executando Seus Próprios Testes

Teste Rápido de Latência

for i in {1..10}; do
curl -w "%{time_total}s\n" -o /dev/null -s http://54.171.48.207:8080/api/latency
done

Verificar Geo-Routing

curl -s http://54.171.48.207:8080/api/info | jq .
# Retorna: {"region":"cdg","region_name":"Paris, France",...}

Teste de Velocidade de Download

# Download de 1MB
curl -w "Velocidade: %{speed_download} B/s\n" -o /dev/null -s \
"http://54.171.48.207:8080/api/download?size=1048576"

# Download de 5MB
curl -w "Velocidade: %{speed_download} B/s\n" -o /dev/null -s \
"http://54.171.48.207:8080/api/download?size=5242880"

Script de Benchmark Completo

Use o script fornecido em scripts/benchmark.sh:

./scripts/benchmark.sh http://54.171.48.207:8080

Endpoints de Benchmark

EndpointDescrição
/Banner ASCII art com info da região
/api/infoInfo do servidor em JSON (região, uptime, requests)
/api/latencyResposta mínima para teste de latência
/api/download?size=NTeste de download (N bytes, máx 100MB)
/api/uploadTeste de upload (corpo POST)
/api/statsEstatísticas do servidor
/benchmarkPágina HTML interativa de benchmark

Conclusões

  1. Geo-Routing: 100% de precisão roteando clientes para backend regional correto
  2. WireGuard: Túneis estáveis com todos os 10 backends globais
  3. Performance: Latência escala previsivelmente com distância geográfica
  4. Confiabilidade: Todos os testes passaram com resultados consistentes

Deploy de Produção

Para produção, faça deploy de POPs edgeProxy em múltiplas regiões:

CenárioLatência Esperada
Cliente → POP Local → Backend Local5-20ms
Cliente → POP Local → Backend Regional20-50ms
Cliente → POP Local → Backend Remoto50-150ms

O setup de teste roteia todo tráfego pela Irlanda. Um deploy full mesh melhoraria significativamente a performance global.


Benchmark v1 (Inicial)

Teste de validação inicial com regiões limitadas para verificar funcionalidade de geo-routing.

Escopo do Teste
  • Regiões testadas: 3 (foco na Europa)
  • Objetivo: Validar geo-routing básico e conectividade WireGuard

Resultados dos Testes

#Localização VPNPaísBackendLatênciaStatus
1🇫🇷 ParisFRCDG~500ms
2🇩🇪 FrankfurtDEFRA~520ms
3🇬🇧 LondresGBLHR~480ms

Melhorias v1 → v2

Aspectov1v2
Regiões testadas39
MétricasApenas latênciaLatência, Download, RPS
Cobertura globalApenas Europa5 continentes
Peers WireGuard310

Documentação Relacionada