Speedbump - proxy TCP com latência variável
(github.com/kffl)- Um proxy TCP escrito em Go que permite simular vários tipos de latência de rede variável
Exemplo básico de uso
- Cria uma nova instância escutando na porta 2000 para fazer proxy do tráfego TCP para localhost:80, com latência base de 100ms, amplitude de onda senoidal de 100ms (latência adicional máxima de 200ms, mínima de 0) e período de 1 minuto:
speedbump --latency=100ms --sine-amplitude=100ms --sine-period=1m --port=2000 localhost:80 - Ou, ao executar o speedbump usando a imagem de contêiner kffl/speedbump:
docker run --net=host kffl/speedbump:latest --latency=100ms --sine-amplitude=100ms \ --sine-period=1m --port=2000 localhost:80 - Cria uma nova instância com latência base de 300ms e latência em onda dente de serra com amplitude de 200ms e período de 2 minutos, como mostrado no gráfico abaixo:
speedbump --latency=300ms --saw-amplitude=200ms --saw-period=2m --port=2000 localhost:80 - É possível executar simultaneamente a soma de várias latências.
- O Speedbump pode ser usado como biblioteca Go por meio do pacote
lib.
Opinião do GN⁺:
- O Speedbump é uma ferramenta útil para simular latência de rede e pode ajudar a testar e otimizar o desempenho de aplicações baseadas em rede.
- Como foi escrito em Go, é familiar para desenvolvedores Go e oferece recursos para simular facilmente vários padrões de latência.
- É open source e segue a licença Apache 2.0, então pode continuar sendo aprimorado por meio de contribuições da comunidade.
1 comentários
Comentários do Hacker News
tcpara adicionar latência a uma interface específica, e isso também funciona bem em contêineres Docker. Ele talvez já esteja instalado em muitos sistemas.tc qdisc add dev eth0 root netem delay 100ms