Coder Social home page Coder Social logo

Comments (1)

h-phil avatar h-phil commented on May 30, 2024

Before (trafficControl.enabled: false)

$ kubectl -n i2pd exec -ti i2pd-1-i2pd-chart-7b569f77b6-xzpbm -- /bin/sh
/ $ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
3: eth0@if797: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1450 qdisc noqueue state UP qlen 1000
    link/ether 3e:43:38:b7:26:3e brd ff:ff:ff:ff:ff:ff
    inet 123.8.0.2/32 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::3c43:38ff:feb7:263e/64 scope link
       valid_lft forever preferred_lft forever
       
/ $ ping 123.8.0.3
PING 123.8.0.3 (123.8.0.3): 56 data bytes
64 bytes from 123.8.0.3: seq=0 ttl=42 time=0.162 ms
64 bytes from 123.8.0.3: seq=1 ttl=42 time=0.083 ms
64 bytes from 123.8.0.3: seq=2 ttl=42 time=0.142 ms
64 bytes from 123.8.0.3: seq=3 ttl=42 time=0.090 ms
64 bytes from 123.8.0.3: seq=4 ttl=42 time=0.088 ms
64 bytes from 123.8.0.3: seq=5 ttl=42 time=0.097 ms
64 bytes from 123.8.0.3: seq=6 ttl=42 time=0.082 ms
64 bytes from 123.8.0.3: seq=7 ttl=42 time=0.095 ms
64 bytes from 123.8.0.3: seq=8 ttl=42 time=0.094 ms
^C
--- 123.8.0.3 ping statistics ---
9 packets transmitted, 9 packets received, 0% packet loss
round-trip min/avg/max = 0.082/0.103/0.162 ms

After (trafficControl.enabled: true)

With the following values:

trafficControl:
  enabled: true
  image:
    # see https://github.com/h-phil/alpine-iproute2
    repository: hphil/alpine-iproute2
    tag: latest
  init: |
    #!/bin/sh
    set -ex
    # delay of 40+-20ms (normal distribution) per pod
    # 0.1% loss with higher successive probablity (packet burst lossess)
    tc qdisc add dev eth0 root netem delay 40ms 20ms distribution normal loss 0.1% 25%

Before every i2pd container there should have been a tc init container that changed the traffic control options:

kubectl -n i2pd logs i2pd-1-i2pd-chart-6c54c454d9-9qnw9 tc
+ tc qdisc add dev eth0 root netem delay 40ms 20ms distribution normal loss '0.1%' '25%'

The ping latency increased:

kubectl -n i2pd exec -ti i2pd-1-i2pd-chart-6c54c454d9-9qnw9 -- /bin/sh
Defaulted container "i2pd-chart" out of: i2pd-chart, tc (init)
/ $ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
3: eth0@if1463: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1450 qdisc netem state UP qlen 1000
    link/ether c2:06:12:45:15:4a brd ff:ff:ff:ff:ff:ff
    inet 123.8.0.2/32 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::c006:12ff:fe45:154a/64 scope link
       valid_lft forever preferred_lft forever
       
/ $ ping 123.8.0.3
PING 123.8.0.3 (123.8.0.3): 56 data bytes
64 bytes from 123.8.0.3: seq=0 ttl=42 time=53.711 ms
64 bytes from 123.8.0.3: seq=1 ttl=42 time=101.795 ms
64 bytes from 123.8.0.3: seq=2 ttl=42 time=113.479 ms
64 bytes from 123.8.0.3: seq=3 ttl=42 time=98.451 ms
64 bytes from 123.8.0.3: seq=4 ttl=42 time=72.133 ms
64 bytes from 123.8.0.3: seq=5 ttl=42 time=50.813 ms
64 bytes from 123.8.0.3: seq=6 ttl=42 time=119.052 ms
64 bytes from 123.8.0.3: seq=7 ttl=42 time=57.723 ms
64 bytes from 123.8.0.3: seq=8 ttl=42 time=108.878 ms
64 bytes from 123.8.0.3: seq=9 ttl=42 time=80.346 ms
64 bytes from 123.8.0.3: seq=10 ttl=42 time=85.890 ms
64 bytes from 123.8.0.3: seq=11 ttl=42 time=71.723 ms
64 bytes from 123.8.0.3: seq=12 ttl=42 time=102.190 ms
64 bytes from 123.8.0.3: seq=13 ttl=42 time=97.972 ms
64 bytes from 123.8.0.3: seq=14 ttl=42 time=120.178 ms
64 bytes from 123.8.0.3: seq=15 ttl=42 time=65.768 ms
^C
--- 123.8.0.3 ping statistics ---
16 packets transmitted, 16 packets received, 0% packet loss
round-trip min/avg/max = 50.813/87.506/120.178 ms

Note

After this change I have also seen (for the first time) a tunnel creation success rate below 100%.

from i2pd-testnet-kubernetes.

Related Issues (4)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.