Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Maestral upload causes extreme packet loss and latency for all other apps #90

Open
lgarron opened this issue Mar 25, 2022 · 9 comments
Open

Comments

@lgarron
Copy link
Owner

lgarron commented Mar 25, 2022

The 3 Google Wifi access points stay connected, but after a few hours/days it's quite common for my bandwidth and latency to take a huge hit — hundreds of milliseconds for no reason, when ping to the outside world is normally steady around 20ms. Unplugging some access points or resetting the network always works to fix it instantly, so this seems to be caused or fixable by software (i.e. it's not an issue with continuous interference).

I'm also connected into the closest access point via Ethernet, so the issue is 100% between the access points themselves.

@lgarron
Copy link
Owner Author

lgarron commented Apr 12, 2022

New workaround:
6ccu08
🤷

@lgarron
Copy link
Owner Author

lgarron commented Jan 20, 2023

The situation remains ridiculous. Even for a computer connected to the main hub via Ethernet and with Wi-Fi disabled, my network goes back and forth between:

  • 12-15ms ping to 1.1.1.1 with essentially no packet loss.
  • 65ms ping with like 75% packet loss, sometimes as high as 100ms or even spiking well beyond 1000ms.

Screenshot 2023-01-19 at 23 17 09

The network usually returns to reliable 12-15ms after I restart network from the Google Home, but the bad behaviour often returns within a few minutes.

Google doesn't seem to care:

@lgarron
Copy link
Owner Author

lgarron commented Jan 20, 2023

This was 4 years ago:

There's a bug in the latest Google Wifi firmware that sounds exactly like what you're experiencing. Apparently, if you have the secondary staions connected by ethernet, but they do not have a decent wifi connection to the base station, you end up getting a storm of ARP packets on your network that slows everything to a crawl.
https://www.reddit.com/r/GoogleWiFi/comments/94wo3n/comment/e3ou4hy/?utm_source=reddit&utm_medium=web2x&context=3
(Archive help link: https://web.archive.org/web/20200815000000*/https://support.google.com/wifi/thread/191256 )

Out of caution, I'm rewiring my Ethernet to prevent any possibility of loops, even if this introduces additional latency between certain devices. I've tried this several times before, but let's see it somehow works this time.

@lgarron
Copy link
Owner Author

lgarron commented Jan 20, 2023

Out of caution, I'm rewiring my Ethernet to prevent any possibility of loops, even if this introduces additional latency between certain devices. I've tried this several times before, but let's see it somehow works this time.

Nope. Stays at 12-15ms, then suddenly craters. Starting with packet 31 here, purely over Ethernet:

  ___ ___ ___ __  __   _   ___ _  _
 / __| __| _ \  \/  | /_\ |_ _| \| |
| (_ | _||   / |\/| |/ _ \ | || .` |
 \___|___|_|_\_|  |_/_/ \_\___|_|\_|

lgarron@Germain ~> ping 1.1.1.1
PING 1.1.1.1 (1.1.1.1): 56 data bytes
64 bytes from 1.1.1.1: icmp_seq=0 ttl=55 time=35.313 ms
≥64 bytes from 1.1.1.1: icmp_seq=1 ttl=55 time=14.392 ms
64 bytes from 1.1.1.1: icmp_seq=2 ttl=55 time=13.383 ms
64 bytes from 1.1.1.1: icmp_seq=3 ttl=55 time=12.138 ms
64 bytes from 1.1.1.1: icmp_seq=4 ttl=55 time=14.498 ms
64 bytes from 1.1.1.1: icmp_seq=5 ttl=55 time=14.087 ms
64 bytes from 1.1.1.1: icmp_seq=6 ttl=55 time=12.672 ms
64 bytes from 1.1.1.1: icmp_seq=7 ttl=55 time=13.992 ms
64 bytes from 1.1.1.1: icmp_seq=8 ttl=55 time=14.677 ms
64 bytes from 1.1.1.1: icmp_seq=9 ttl=55 time=135.970 ms
64 bytes from 1.1.1.1: icmp_seq=10 ttl=55 time=12.245 ms
64 bytes from 1.1.1.1: icmp_seq=11 ttl=55 time=12.869 ms
64 bytes from 1.1.1.1: icmp_seq=12 ttl=55 time=12.765 ms
64 bytes from 1.1.1.1: icmp_seq=13 ttl=55 time=13.017 ms
64 bytes from 1.1.1.1: icmp_seq=14 ttl=55 time=12.059 ms
64 bytes from 1.1.1.1: icmp_seq=15 ttl=55 time=12.154 ms
64 bytes from 1.1.1.1: icmp_seq=16 ttl=55 time=10.166 ms
64 bytes from 1.1.1.1: icmp_seq=17 ttl=55 time=11.964 ms
64 bytes from 1.1.1.1: icmp_seq=18 ttl=55 time=12.506 ms
64 bytes from 1.1.1.1: icmp_seq=19 ttl=55 time=13.207 ms
64 bytes from 1.1.1.1: icmp_seq=20 ttl=55 time=12.060 ms
64 bytes from 1.1.1.1: icmp_seq=21 ttl=55 time=12.361 ms
64 bytes from 1.1.1.1: icmp_seq=22 ttl=55 time=12.052 ms
64 bytes from 1.1.1.1: icmp_seq=23 ttl=55 time=18.706 ms
64 bytes from 1.1.1.1: icmp_seq=24 ttl=55 time=12.590 ms
64 bytes from 1.1.1.1: icmp_seq=25 ttl=55 time=12.604 ms
64 bytes from 1.1.1.1: icmp_seq=26 ttl=55 time=15.769 ms
64 bytes from 1.1.1.1: icmp_seq=27 ttl=55 time=18.545 ms
64 bytes from 1.1.1.1: icmp_seq=28 ttl=55 time=14.590 ms
64 bytes from 1.1.1.1: icmp_seq=29 ttl=55 time=16.125 ms
64 bytes from 1.1.1.1: icmp_seq=30 ttl=55 time=17.272 ms
64 bytes from 1.1.1.1: icmp_seq=31 ttl=55 time=35.345 ms
Request timeout for icmp_seq 32
Request timeout for icmp_seq 33
64 bytes from 1.1.1.1: icmp_seq=34 ttl=55 time=71.260 ms
64 bytes from 1.1.1.1: icmp_seq=35 ttl=55 time=74.091 ms
64 bytes from 1.1.1.1: icmp_seq=36 ttl=55 time=58.891 ms
64 bytes from 1.1.1.1: icmp_seq=37 ttl=55 time=76.617 ms
64 bytes from 1.1.1.1: icmp_seq=38 ttl=55 time=59.924 ms
Request timeout for icmp_seq 39
64 bytes from 1.1.1.1: icmp_seq=40 ttl=55 time=73.605 ms
64 bytes from 1.1.1.1: icmp_seq=41 ttl=55 time=58.916 ms
64 bytes from 1.1.1.1: icmp_seq=42 ttl=55 time=65.487 ms
64 bytes from 1.1.1.1: icmp_seq=43 ttl=55 time=60.194 ms
Request timeout for icmp_seq 44
64 bytes from 1.1.1.1: icmp_seq=45 ttl=55 time=59.844 ms
64 bytes from 1.1.1.1: icmp_seq=46 ttl=55 time=68.588 ms
Request timeout for icmp_seq 47
64 bytes from 1.1.1.1: icmp_seq=48 ttl=55 time=66.445 ms
64 bytes from 1.1.1.1: icmp_seq=49 ttl=55 time=59.441 ms
Request timeout for icmp_seq 50
Request timeout for icmp_seq 51
Request timeout for icmp_seq 52
64 bytes from 1.1.1.1: icmp_seq=53 ttl=55 time=62.949 ms
Request timeout for icmp_seq 54
Request timeout for icmp_seq 55
64 bytes from 1.1.1.1: icmp_seq=56 ttl=55 time=65.856 ms
Request timeout for icmp_seq 57
Request timeout for icmp_seq 58
Request timeout for icmp_seq 59
Request timeout for icmp_seq 60
Request timeout for icmp_seq 61
64 bytes from 1.1.1.1: icmp_seq=62 ttl=55 time=63.618 ms
Request timeout for icmp_seq 63
Request timeout for icmp_seq 64
64 bytes from 1.1.1.1: icmp_seq=65 ttl=55 time=70.781 ms
Request timeout for icmp_seq 66
Request timeout for icmp_seq 67
Request timeout for icmp_seq 68
Request timeout for icmp_seq 69
Request timeout for icmp_seq 70
Request timeout for icmp_seq 71
64 bytes from 1.1.1.1: icmp_seq=72 ttl=55 time=62.056 ms
64 bytes from 1.1.1.1: icmp_seq=73 ttl=55 time=71.957 ms
Request timeout for icmp_seq 74
Request timeout for icmp_seq 75
Request timeout for icmp_seq 76
Request timeout for icmp_seq 77
Request timeout for icmp_seq 78
Request timeout for icmp_seq 79
Request timeout for icmp_seq 80
64 bytes from 1.1.1.1: icmp_seq=81 ttl=55 time=66.754 ms
Request timeout for icmp_seq 82
Request timeout for icmp_seq 83
Request timeout for icmp_seq 84
Request timeout for icmp_seq 85
Request timeout for icmp_seq 86
Request timeout for icmp_seq 87
Request timeout for icmp_seq 88
64 bytes from 1.1.1.1: icmp_seq=89 ttl=55 time=59.661 ms
Request timeout for icmp_seq 90
Request timeout for icmp_seq 91
Request timeout for icmp_seq 92
64 bytes from 1.1.1.1: icmp_seq=93 ttl=55 time=60.817 ms
64 bytes from 1.1.1.1: icmp_seq=94 ttl=55 time=64.826 ms
Request timeout for icmp_seq 95
Request timeout for icmp_seq 96
64 bytes from 1.1.1.1: icmp_seq=97 ttl=55 time=62.017 ms
64 bytes from 1.1.1.1: icmp_seq=98 ttl=55 time=54.192 ms
64 bytes from 1.1.1.1: icmp_seq=99 ttl=55 time=56.048 ms
64 bytes from 1.1.1.1: icmp_seq=100 ttl=55 time=41.989 ms
64 bytes from 1.1.1.1: icmp_seq=101 ttl=55 time=53.969 ms
64 bytes from 1.1.1.1: icmp_seq=102 ttl=55 time=50.807 ms
Request timeout for icmp_seq 103
64 bytes from 1.1.1.1: icmp_seq=104 ttl=55 time=50.299 ms
64 bytes from 1.1.1.1: icmp_seq=105 ttl=55 time=48.284 ms
64 bytes from 1.1.1.1: icmp_seq=106 ttl=55 time=51.315 ms
64 bytes from 1.1.1.1: icmp_seq=107 ttl=55 time=54.158 ms
64 bytes from 1.1.1.1: icmp_seq=108 ttl=55 time=48.865 ms
64 bytes from 1.1.1.1: icmp_seq=109 ttl=55 time=47.024 ms
64 bytes from 1.1.1.1: icmp_seq=110 ttl=55 time=49.162 ms
64 bytes from 1.1.1.1: icmp_seq=111 ttl=55 time=54.306 ms
64 bytes from 1.1.1.1: icmp_seq=112 ttl=55 time=43.584 ms
64 bytes from 1.1.1.1: icmp_seq=113 ttl=55 time=46.465 ms
Request timeout for icmp_seq 114
Request timeout for icmp_seq 115
64 bytes from 1.1.1.1: icmp_seq=116 ttl=55 time=49.631 ms
Request timeout for icmp_seq 117
Request timeout for icmp_seq 118
64 bytes from 1.1.1.1: icmp_seq=119 ttl=55 time=47.626 ms
64 bytes from 1.1.1.1: icmp_seq=120 ttl=55 time=75.321 ms
64 bytes from 1.1.1.1: icmp_seq=121 ttl=55 time=43.758 ms
64 bytes from 1.1.1.1: icmp_seq=122 ttl=55 time=44.618 ms

Wireless-only seems to be a bit more reliable, but not actually good either:

  ___ ___ ___ __  __   _   ___ _  _
 / __| __| _ \  \/  | /_\ |_ _| \| |
| (_ | _||   / |\/| |/ _ \ | || .` |
 \___|___|_|_\_|  |_/_/ \_\___|_|\_|

lgarron@Germain ~ [127]> ping 1.1.1.1
PING 1.1.1.1 (1.1.1.1): 56 data bytes
64 bytes from 1.1.1.1: icmp_seq=0 ttl=55 time=56.886 ms
64 bytes from 1.1.1.1: icmp_seq=1 ttl=55 time=24.047 ms
64 bytes from 1.1.1.1: icmp_seq=2 ttl=55 time=31.972 ms
64 bytes from 1.1.1.1: icmp_seq=3 ttl=55 time=24.749 ms
64 bytes from 1.1.1.1: icmp_seq=4 ttl=55 time=24.364 ms
64 bytes from 1.1.1.1: icmp_seq=5 ttl=55 time=52.051 ms
64 bytes from 1.1.1.1: icmp_seq=6 ttl=55 time=19.207 ms
64 bytes from 1.1.1.1: icmp_seq=7 ttl=55 time=27.132 ms
64 bytes from 1.1.1.1: icmp_seq=8 ttl=55 time=25.366 ms
64 bytes from 1.1.1.1: icmp_seq=9 ttl=55 time=22.720 ms
64 bytes from 1.1.1.1: icmp_seq=10 ttl=55 time=23.213 ms
64 bytes from 1.1.1.1: icmp_seq=11 ttl=55 time=22.410 ms
64 bytes from 1.1.1.1: icmp_seq=12 ttl=55 time=25.218 ms
64 bytes from 1.1.1.1: icmp_seq=13 ttl=55 time=27.794 ms
64 bytes from 1.1.1.1: icmp_seq=14 ttl=55 time=53.888 ms
64 bytes from 1.1.1.1: icmp_seq=15 ttl=55 time=27.333 ms
64 bytes from 1.1.1.1: icmp_seq=16 ttl=55 time=21.288 ms
64 bytes from 1.1.1.1: icmp_seq=17 ttl=55 time=23.726 ms
64 bytes from 1.1.1.1: icmp_seq=18 ttl=55 time=16.237 ms
64 bytes from 1.1.1.1: icmp_seq=19 ttl=55 time=22.378 ms
64 bytes from 1.1.1.1: icmp_seq=20 ttl=55 time=18.850 ms
64 bytes from 1.1.1.1: icmp_seq=21 ttl=55 time=59.530 ms
64 bytes from 1.1.1.1: icmp_seq=22 ttl=55 time=172.714 ms
64 bytes from 1.1.1.1: icmp_seq=23 ttl=55 time=38.081 ms
64 bytes from 1.1.1.1: icmp_seq=24 ttl=55 time=23.137 ms
64 bytes from 1.1.1.1: icmp_seq=25 ttl=55 time=37.607 ms
64 bytes from 1.1.1.1: icmp_seq=26 ttl=55 time=32.694 ms
64 bytes from 1.1.1.1: icmp_seq=27 ttl=55 time=53.398 ms
64 bytes from 1.1.1.1: icmp_seq=28 ttl=55 time=30.648 ms
64 bytes from 1.1.1.1: icmp_seq=29 ttl=55 time=32.459 ms
64 bytes from 1.1.1.1: icmp_seq=30 ttl=55 time=47.734 ms
64 bytes from 1.1.1.1: icmp_seq=31 ttl=55 time=23.507 ms
64 bytes from 1.1.1.1: icmp_seq=32 ttl=55 time=116.914 ms
64 bytes from 1.1.1.1: icmp_seq=33 ttl=55 time=36.483 ms
64 bytes from 1.1.1.1: icmp_seq=34 ttl=55 time=38.978 ms
64 bytes from 1.1.1.1: icmp_seq=35 ttl=55 time=53.866 ms
64 bytes from 1.1.1.1: icmp_seq=36 ttl=55 time=34.179 ms
64 bytes from 1.1.1.1: icmp_seq=37 ttl=55 time=26.404 ms
64 bytes from 1.1.1.1: icmp_seq=38 ttl=55 time=36.228 ms
64 bytes from 1.1.1.1: icmp_seq=39 ttl=55 time=33.696 ms
64 bytes from 1.1.1.1: icmp_seq=40 ttl=55 time=32.108 ms
64 bytes from 1.1.1.1: icmp_seq=41 ttl=55 time=27.486 ms
64 bytes from 1.1.1.1: icmp_seq=42 ttl=55 time=46.539 ms
64 bytes from 1.1.1.1: icmp_seq=43 ttl=55 time=28.211 ms
64 bytes from 1.1.1.1: icmp_seq=44 ttl=55 time=41.313 ms

... or that could be a flake. I checked Ethernet, and it was somewhere inbetween, before stabilizing to 12-15ms again:

 / __| __| _ \  \/  | /_\ |_ _| \| |
| (_ | _||   / |\/| |/ _ \ | || .` |
 \___|___|_|_\_|  |_/_/ \_\___|_|\_|

lgarron@Germain ~> ping 1.1.1.1
PING 1.1.1.1 (1.1.1.1): 56 data bytes
64 bytes from 1.1.1.1: icmp_seq=0 ttl=55 time=36.453 ms
64 bytes from 1.1.1.1: icmp_seq=1 ttl=55 time=20.452 ms
64 bytes from 1.1.1.1: icmp_seq=2 ttl=55 time=19.530 ms
64 bytes from 1.1.1.1: icmp_seq=3 ttl=55 time=28.855 ms
64 bytes from 1.1.1.1: icmp_seq=4 ttl=55 time=42.197 ms
64 bytes from 1.1.1.1: icmp_seq=5 ttl=55 time=27.989 ms
64 bytes from 1.1.1.1: icmp_seq=6 ttl=55 time=13.201 ms
64 bytes from 1.1.1.1: icmp_seq=7 ttl=55 time=38.865 ms
64 bytes from 1.1.1.1: icmp_seq=8 ttl=55 time=16.923 ms
64 bytes from 1.1.1.1: icmp_seq=9 ttl=55 time=15.678 ms
64 bytes from 1.1.1.1: icmp_seq=10 ttl=55 time=58.464 ms
64 bytes from 1.1.1.1: icmp_seq=11 ttl=55 time=23.468 ms
64 bytes from 1.1.1.1: icmp_seq=12 ttl=55 time=31.497 ms
64 bytes from 1.1.1.1: icmp_seq=13 ttl=55 time=14.996 ms
64 bytes from 1.1.1.1: icmp_seq=14 ttl=55 time=31.384 ms
64 bytes from 1.1.1.1: icmp_seq=15 ttl=55 time=32.199 ms
64 bytes from 1.1.1.1: icmp_seq=16 ttl=55 time=12.596 ms
64 bytes from 1.1.1.1: icmp_seq=17 ttl=55 time=23.786 ms
64 bytes from 1.1.1.1: icmp_seq=18 ttl=55 time=20.428 ms
64 bytes from 1.1.1.1: icmp_seq=19 ttl=55 time=17.489 ms
64 bytes from 1.1.1.1: icmp_seq=20 ttl=55 time=15.324 ms
64 bytes from 1.1.1.1: icmp_seq=21 ttl=55 time=26.873 ms
64 bytes from 1.1.1.1: icmp_seq=22 ttl=55 time=36.959 ms
64 bytes from 1.1.1.1: icmp_seq=23 ttl=55 time=30.837 ms
64 bytes from 1.1.1.1: icmp_seq=24 ttl=55 time=21.582 ms
64 bytes from 1.1.1.1: icmp_seq=25 ttl=55 time=23.730 ms
64 bytes from 1.1.1.1: icmp_seq=26 ttl=55 time=15.379 ms
64 bytes from 1.1.1.1: icmp_seq=27 ttl=55 time=14.421 ms
64 bytes from 1.1.1.1: icmp_seq=28 ttl=55 time=18.566 ms
64 bytes from 1.1.1.1: icmp_seq=29 ttl=55 time=26.697 ms
64 bytes from 1.1.1.1: icmp_seq=30 ttl=55 time=20.508 ms
64 bytes from 1.1.1.1: icmp_seq=31 ttl=55 time=26.645 ms
64 bytes from 1.1.1.1: icmp_seq=32 ttl=55 time=32.512 ms
64 bytes from 1.1.1.1: icmp_seq=33 ttl=55 time=21.484 ms
64 bytes from 1.1.1.1: icmp_seq=34 ttl=55 time=16.560 ms
64 bytes from 1.1.1.1: icmp_seq=35 ttl=55 time=15.571 ms
64 bytes from 1.1.1.1: icmp_seq=36 ttl=55 time=21.027 ms
64 bytes from 1.1.1.1: icmp_seq=37 ttl=55 time=16.180 ms
64 bytes from 1.1.1.1: icmp_seq=38 ttl=55 time=41.433 ms
64 bytes from 1.1.1.1: icmp_seq=39 ttl=55 time=19.271 ms
64 bytes from 1.1.1.1: icmp_seq=40 ttl=55 time=41.252 ms
64 bytes from 1.1.1.1: icmp_seq=41 ttl=55 time=29.124 ms
64 bytes from 1.1.1.1: icmp_seq=42 ttl=55 time=35.786 ms
64 bytes from 1.1.1.1: icmp_seq=43 ttl=55 time=22.897 ms
64 bytes from 1.1.1.1: icmp_seq=44 ttl=55 time=16.203 ms
64 bytes from 1.1.1.1: icmp_seq=45 ttl=55 time=14.786 ms
64 bytes from 1.1.1.1: icmp_seq=46 ttl=55 time=21.121 ms
64 bytes from 1.1.1.1: icmp_seq=47 ttl=55 time=12.257 ms
64 bytes from 1.1.1.1: icmp_seq=48 ttl=55 time=16.102 ms
64 bytes from 1.1.1.1: icmp_seq=49 ttl=55 time=37.196 ms
64 bytes from 1.1.1.1: icmp_seq=50 ttl=55 time=31.217 ms
64 bytes from 1.1.1.1: icmp_seq=51 ttl=55 time=25.699 ms
64 bytes from 1.1.1.1: icmp_seq=52 ttl=55 time=22.310 ms
64 bytes from 1.1.1.1: icmp_seq=53 ttl=55 time=38.641 ms
64 bytes from 1.1.1.1: icmp_seq=54 ttl=55 time=17.392 ms
64 bytes from 1.1.1.1: icmp_seq=55 ttl=55 time=21.037 ms
64 bytes from 1.1.1.1: icmp_seq=56 ttl=55 time=19.002 ms
64 bytes from 1.1.1.1: icmp_seq=57 ttl=55 time=36.355 ms
64 bytes from 1.1.1.1: icmp_seq=58 ttl=55 time=23.270 ms
64 bytes from 1.1.1.1: icmp_seq=59 ttl=55 time=17.782 ms
64 bytes from 1.1.1.1: icmp_seq=60 ttl=55 time=27.580 ms
64 bytes from 1.1.1.1: icmp_seq=61 ttl=55 time=14.514 ms
64 bytes from 1.1.1.1: icmp_seq=62 ttl=55 time=14.011 ms
64 bytes from 1.1.1.1: icmp_seq=63 ttl=55 time=26.203 ms
64 bytes from 1.1.1.1: icmp_seq=64 ttl=55 time=27.321 ms
64 bytes from 1.1.1.1: icmp_seq=65 ttl=55 time=15.395 ms
64 bytes from 1.1.1.1: icmp_seq=66 ttl=55 time=11.841 ms
64 bytes from 1.1.1.1: icmp_seq=67 ttl=55 time=14.017 ms
64 bytes from 1.1.1.1: icmp_seq=68 ttl=55 time=13.971 ms
64 bytes from 1.1.1.1: icmp_seq=69 ttl=55 time=13.387 ms
64 bytes from 1.1.1.1: icmp_seq=70 ttl=55 time=12.996 ms
64 bytes from 1.1.1.1: icmp_seq=71 ttl=55 time=12.467 ms
64 bytes from 1.1.1.1: icmp_seq=72 ttl=55 time=12.845 ms
64 bytes from 1.1.1.1: icmp_seq=73 ttl=55 time=13.876 ms
64 bytes from 1.1.1.1: icmp_seq=74 ttl=55 time=12.964 ms
64 bytes from 1.1.1.1: icmp_seq=75 ttl=55 time=13.485 ms
64 bytes from 1.1.1.1: icmp_seq=76 ttl=55 time=12.980 ms
64 bytes from 1.1.1.1: icmp_seq=77 ttl=55 time=12.609 ms

I'll try the no-loop setup for now, to see if it mitigates the most extreme packet loss.

@lgarron
Copy link
Owner Author

lgarron commented Jan 20, 2023

I'm also not ruling out Comcast as the culprit:

  ___ ___ ___ __  __   _   ___ _  _
 / __| __| _ \  \/  | /_\ |_ _| \| |
| (_ | _||   / |\/| |/ _ \ | || .` |
 \___|___|_|_\_|  |_/_/ \_\___|_|\_|

lgarron@Germain ~> ping 1.1.1.1
PING 1.1.1.1 (1.1.1.1): 56 data bytes
64 bytes from 1.1.1.1: icmp_seq=0 ttl=55 time=25.644 ms
64 bytes from 1.1.1.1: icmp_seq=1 ttl=55 time=13.618 ms
64 bytes from 1.1.1.1: icmp_seq=2 ttl=55 time=13.119 ms
64 bytes from 1.1.1.1: icmp_seq=3 ttl=55 time=12.264 ms
64 bytes from 1.1.1.1: icmp_seq=4 ttl=55 time=13.888 ms
64 bytes from 1.1.1.1: icmp_seq=5 ttl=55 time=20.388 ms
64 bytes from 1.1.1.1: icmp_seq=6 ttl=55 time=13.320 ms
64 bytes from 1.1.1.1: icmp_seq=7 ttl=55 time=11.924 ms
64 bytes from 1.1.1.1: icmp_seq=8 ttl=55 time=20.530 ms
64 bytes from 1.1.1.1: icmp_seq=9 ttl=55 time=15.198 ms
64 bytes from 1.1.1.1: icmp_seq=10 ttl=55 time=15.885 ms
64 bytes from 1.1.1.1: icmp_seq=11 ttl=55 time=13.521 ms
64 bytes from 1.1.1.1: icmp_seq=12 ttl=55 time=14.490 ms
64 bytes from 1.1.1.1: icmp_seq=13 ttl=55 time=17.079 ms
64 bytes from 1.1.1.1: icmp_seq=14 ttl=55 time=14.550 ms
64 bytes from 1.1.1.1: icmp_seq=15 ttl=55 time=32.617 ms
64 bytes from 1.1.1.1: icmp_seq=16 ttl=55 time=12.844 ms
Request timeout for icmp_seq 17
Request timeout for icmp_seq 18
Request timeout for icmp_seq 19
Request timeout for icmp_seq 20
Request timeout for icmp_seq 21
Request timeout for icmp_seq 22
Request timeout for icmp_seq 23
Request timeout for icmp_seq 24
92 bytes from c-76-103-226-2.hsd1.ca.comcast.net (76.103.226.2): Destination Host Unreachable
Vr HL TOS  Len   ID Flg  off TTL Pro  cks      Src      Dst
 4  5  00 5400 b018   0 0000  3f  01 b2c7 192.168.86.31  1.1.1.1

Request timeout for icmp_seq 25
Request timeout for icmp_seq 26
64 bytes from 1.1.1.1: icmp_seq=27 ttl=55 time=70.209 ms
64 bytes from 1.1.1.1: icmp_seq=28 ttl=55 time=70.189 ms
Request timeout for icmp_seq 29
64 bytes from 1.1.1.1: icmp_seq=30 ttl=55 time=66.935 ms
Request timeout for icmp_seq 31
64 bytes from 1.1.1.1: icmp_seq=32 ttl=55 time=54.899 ms
Request timeout for icmp_seq 33
64 bytes from 1.1.1.1: icmp_seq=34 ttl=55 time=67.918 ms
64 bytes from 1.1.1.1: icmp_seq=35 ttl=55 time=66.889 ms
Request timeout for icmp_seq 36
Request timeout for icmp_seq 37
Request timeout for icmp_seq 38
64 bytes from 1.1.1.1: icmp_seq=39 ttl=55 time=63.966 ms
Request timeout for icmp_seq 40
64 bytes from 1.1.1.1: icmp_seq=41 ttl=55 time=61.420 ms
Request timeout for icmp_seq 42
64 bytes from 1.1.1.1: icmp_seq=43 ttl=55 time=67.095 ms
64 bytes from 1.1.1.1: icmp_seq=44 ttl=55 time=63.597 ms
64 bytes from 1.1.1.1: icmp_seq=45 ttl=55 time=64.690 ms
64 bytes from 1.1.1.1: icmp_seq=46 ttl=55 time=64.157 ms
64 bytes from 1.1.1.1: icmp_seq=47 ttl=55 time=67.291 ms

@lgarron
Copy link
Owner Author

lgarron commented Jan 20, 2023

This may also be the result of Maestral, which does not have a bandwidth throttling option, and sometimes keeps running in the background even if I think I've stopped it:

samschott/maestral#438

I'm going to try this:

For the time being, you should be able to exploit the CPU usage setting for your purposes by reducing the max CPU usage from 20% per core to a lower value, e.g., 2%. The documentation at https://maestral.app/docs/configfile explains how this can be done. This will result in uploads being automatically throttled. Downloads will continue as is since we don't currently perform content hashing during downloads, however most internet providers allow for larger download bandwidth compared to uploads.

I've run:

maestral config set max_cpu_percent 1
maestral stop
maestral start

@lgarron
Copy link
Owner Author

lgarron commented Jan 20, 2023

Okay, I'm now fairly certain that the issue is Maestral.

maestral start starts the packet loss and maestral stop returns to normal network performance.

@lgarron lgarron changed the title Google Wifi regularly slows down Maestral upload causes extreme packet loss and latency for all other apps Jan 20, 2023
@lgarron
Copy link
Owner Author

lgarron commented Jan 21, 2023

Okay, setting Maestral to 0.1 % CPU seems to work okay for now. Ping to 1.1.1.1 stays around 12-15ms with no packet loss, and Maestral uploading does not get stuck.
(Maestral seems to make no progress when set to 0.01% CPU.)

@lgarron
Copy link
Owner Author

lgarron commented Jan 23, 2023

Okay, there seems to be at least one other cause. This is with Maestral fully stopped, ≈50-100ms latency but no packet loss:

64 bytes from 1.1.1.1: icmp_seq=27 ttl=55 time=27.753 ms
64 bytes from 1.1.1.1: icmp_seq=28 ttl=55 time=54.543 ms
64 bytes from 1.1.1.1: icmp_seq=29 ttl=55 time=70.630 ms
64 bytes from 1.1.1.1: icmp_seq=30 ttl=55 time=74.252 ms
64 bytes from 1.1.1.1: icmp_seq=31 ttl=55 time=63.988 ms
64 bytes from 1.1.1.1: icmp_seq=32 ttl=55 time=64.026 ms
64 bytes from 1.1.1.1: icmp_seq=33 ttl=55 time=54.655 ms
64 bytes from 1.1.1.1: icmp_seq=34 ttl=55 time=78.313 ms
64 bytes from 1.1.1.1: icmp_seq=35 ttl=55 time=78.294 ms
64 bytes from 1.1.1.1: icmp_seq=36 ttl=55 time=68.657 ms
64 bytes from 1.1.1.1: icmp_seq=37 ttl=55 time=74.116 ms
64 bytes from 1.1.1.1: icmp_seq=38 ttl=55 time=119.476 ms
64 bytes from 1.1.1.1: icmp_seq=39 ttl=55 time=123.265 ms
64 bytes from 1.1.1.1: icmp_seq=40 ttl=55 time=48.376 ms
64 bytes from 1.1.1.1: icmp_seq=41 ttl=55 time=72.377 ms

Restarting Google WiFi does not seem to help.

EDIT: Never mind, this was due to Maestral saturating the network-wide download bandwidth on another computer without Network Link Conditioner.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant