-
Notifications
You must be signed in to change notification settings - Fork 964
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
files.pythonhosted.org: Painfully slow download with Deutsche Telekom (Fastly peering issue) #5583
Comments
Thanks for the report. Are you still experiencing this? (I see https://status.python.org/ didn't mention any incidents but it could have missed something.) |
I have been experiencing these issues ever since I changed my ISP. My new ISP (Deutsche Telekom) has a different connection to Fastly and it looks like they have no direct peering agreement (which BTW is funny, because Deutsche Telekom Capital Partners invests in Fastly). The issue also depends on the time of day. In the morning connection speeds are fine, in the evening (between 17:00 and 0:00 CEST) they are horrible. I can be 100% sure that this is not related to my actual internet connection, because when I enable VPN on my internet connection I can download at full speed from files.pythonhosted.org. I have talked to other people with Deutsche Telekom as their ISP and they can confirm that they also have the exact same issue with files.pythonhosted.org (or Fastly in general). As you can see in the traceroute output above I am using Telia as a carrier, but Level3 is also affected (confirmed by other people using Deutsche Telekom). From what other people tell me it sounds like IPv6 connectivity in the evening is still mostly okay (cannot test myself), so it looks like pretty much only IPv4 is affected. Please file a ticket at your CDN provider, they should make sure that their traffic can actually reach people. Here are some more wget speed tests from different times of day: 21:03Actually 80 KB/s is not too bad, it can get worse... wget -4 https://files.pythonhosted.org/packages/6a/d1/e0d142ce7b8a5c76adbfad01d853bca84c7c0240e35577498e20bc2ade7d/virtualenv-16.2.0-py2.py3-none-any.whl
--2019-03-18 21:03:58-- https://files.pythonhosted.org/packages/6a/d1/e0d142ce7b8a5c76adbfad01d853bca84c7c0240e35577498e20bc2ade7d/virtualenv-16.2.0-py2.py3-none-any.whl
Auflösen des Hostnamens »files.pythonhosted.org (files.pythonhosted.org)« … 151.101.113.63
Verbindungsaufbau zu files.pythonhosted.org (files.pythonhosted.org)|151.101.113.63|:443 … verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 OK
Länge: 1921889 (1,8M) [binary/octet-stream]
Wird in »»virtualenv-16.2.0-py2.py3-none-any.whl.1«« gespeichert.
virtualenv-16.2.0-py2.py3-none-any.whl.1 100%[====================================================================================>] 1,83M 80,1KB/s in 24s
2019-03-18 21:04:23 (78,4 KB/s) - »»virtualenv-16.2.0-py2.py3-none-any.whl.1«« gespeichert [1921889/1921889] 08:31Full speed, as this is in the morning. wget -4 https://files.pythonhosted.org/packages/6a/d1/e0d142ce7b8a5c76adbfad01d853bca84c7c0240e35577498e20bc2ade7d/virtualenv-16.2.0-py2.py3-none-any.whl
--2019-03-19 08:31:23-- https://files.pythonhosted.org/packages/6a/d1/e0d142ce7b8a5c76adbfad01d853bca84c7c0240e35577498e20bc2ade7d/virtualenv-16.2.0-py2.py3-none-any.whl
Auflösen des Hostnamens »files.pythonhosted.org (files.pythonhosted.org)« … 151.101.113.63
Verbindungsaufbau zu files.pythonhosted.org (files.pythonhosted.org)|151.101.113.63|:443 … verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 OK
Länge: 1921889 (1,8M) [binary/octet-stream]
Wird in »»virtualenv-16.2.0-py2.py3-none-any.whl.1«« gespeichert.
virtualenv-16.2.0-py2.py3-none-any.wh 100%[=========================================================================>] 1,83M 7,55MB/s in 0,2s
2019-03-19 08:31:23 (7,55 MB/s) - »»virtualenv-16.2.0-py2.py3-none-any.whl.1«« gespeichert [1921889/1921889] 17:32It's starting to slow down again... wget -4 https://files.pythonhosted.org/packages/6a/d1/e0d142ce7b8a5c76adbfad01d853bca84c7c0240e35577498e20bc2ade7d/virtualenv-16.2.0-py2.py3-none-any.whl
--2019-03-19 17:32:37-- https://files.pythonhosted.org/packages/6a/d1/e0d142ce7b8a5c76adbfad01d853bca84c7c0240e35577498e20bc2ade7d/virtualenv-16.2.0-py2.py3-none-any.whl
Auflösen des Hostnamens »files.pythonhosted.org (files.pythonhosted.org)« … 151.101.13.63
Verbindungsaufbau zu files.pythonhosted.org (files.pythonhosted.org)|151.101.13.63|:443 … verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 OK
Länge: 1921889 (1,8M) [binary/octet-stream]
Wird in »»virtualenv-16.2.0-py2.py3-none-any.whl.4«« gespeichert.
virtualenv-16.2.0-py2.py3-none-any.whl.4 100%[===================================================================================================================================>] 1,83M 98,9KB/s in 18s
2019-03-19 17:32:56 (102 KB/s) - »»virtualenv-16.2.0-py2.py3-none-any.whl.4«« gespeichert [1921889/1921889] 19:43We are at 45 KB/s again... wget -4 https://files.pythonhosted.org/packages/6a/d1/e0d142ce7b8a5c76adbfad01d853bca84c7c0240e35577498e20bc2ade7d/virtualenv-16.2.0-py2.py3-none-any.whl
--2019-03-20 19:42:52-- https://files.pythonhosted.org/packages/6a/d1/e0d142ce7b8a5c76adbfad01d853bca84c7c0240e35577498e20bc2ade7d/virtualenv-16.2.0-py2.py3-none-any.whl
Auflösen des Hostnamens »files.pythonhosted.org (files.pythonhosted.org)« … 151.101.13.63
Verbindungsaufbau zu files.pythonhosted.org (files.pythonhosted.org)|151.101.13.63|:443 … verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 OK
Länge: 1921889 (1,8M) [binary/octet-stream]
Wird in »»virtualenv-16.2.0-py2.py3-none-any.whl«« gespeichert.
virtualenv-16.2.0-py2.py3-none-any.whl 100%[====================================================================================>] 1,83M 63,0KB/s in 41s
2019-03-20 19:43:33 (45,8 KB/s) - »»virtualenv-16.2.0-py2.py3-none-any.whl«« gespeichert [1921889/1921889] 19:45 (with VPN)This is from the same computer, but with a VPN connection. Through the VPN I get full speed due to different routing/peering. wget -4 https://files.pythonhosted.org/packages/6a/d1/e0d142ce7b8a5c76adbfad01d853bca84c7c0240e35577498e20bc2ade7d/virtualenv-16.2.0-py2.py3-none-any.whl
--2019-03-20 19:45:44-- https://files.pythonhosted.org/packages/6a/d1/e0d142ce7b8a5c76adbfad01d853bca84c7c0240e35577498e20bc2ade7d/virtualenv-16.2.0-py2.py3-none-any.whl
Auflösen des Hostnamen »files.pythonhosted.org (files.pythonhosted.org)«... 151.101.113.63
Verbindungsaufbau zu files.pythonhosted.org (files.pythonhosted.org)|151.101.113.63|:443... verbunden.
HTTP-Anforderung gesendet, warte auf Antwort... 200 OK
Länge: 1921889 (1,8M) [binary/octet-stream]
In »»virtualenv-16.2.0-py2.py3-none-any.whl«« speichern.
100%[===================================================================================================================================================================================================================>] 1.921.889 9,92MB/s in 0,2s
2019-03-20 19:45:45 (9,92 MB/s) - »»virtualenv-16.2.0-py2.py3-none-any.whl«« gespeichert [1921889/1921889] |
Thank you for the detailed report. I'm submitting this information to our CDN provider to see if they have any insight. |
@klada it's probably worth contacting someone at your ISP at the same time to attack this from both sides. |
Our CDN provider has noted this as a known issue that they are working to resolve, but is unable to provide a timeline for resolution. |
I'll also file a complaint at my ISP. I need some time for this though, as I have to collect more data and comparisons to VPN speed through the same line. Usually their argument with issues like these is that it's up to the content provider to make sure the traffic reaches their customers. And that's where peering agreements come into play (sadly). Are there any mirrors which are not provided by Fastly that German people can use meanwhile? All of the mirrors I have found seem to be dead. |
Due to the potential cost of additional bandwidth we are unable to provide an official public mirror as PyPI runs on donated services and infrastructure. Additionally the size of a full mirror of PyPI has grown to over 4TB, so not many are able to operate a full mirror at this point. |
I met the same problem. Hope to know a workaround. |
One workaround is to reuse after your initial download... @locdoan12121997 @klada So not just pip cache dir but, considering the Wheelhouse pattern for example
some people commit their wheelhouse to their repo, some use a git submodule, some keep it out of source but do save it into their docker setup and so on. some others do a copy on s3 (see: pypicloud; you could synchronize just what you depend on, rather than full pypi) these won't fix your problem first time around of course. but after first download, you'll have your issue fixed as long as your dependencies don't change. then even if something is added/changed, and that hasn't been added to your wheelhouse or base image yet ... you have a small delta, so relative wait time is slower even with the internet latency issues you are experiencing |
Fastly has solved the issue through direct peering with Deutsche Telekom. Connection speeds to files.pythonhosted.org are now fine again. |
Fastly has solved nothing.
DO:
|
@Safari77 what resolver are you using? |
I was using unbound with dnscrypt-proxy, just now it resolved files.pythonhosted.org to 151.101.241.63 (50 KiB/s). |
@klada , thank you for pointing to Deutsche Telekom! Did you find a workaroud? |
When downloading files from pythonhosted.org the download speeds are extremely slow in my environment. Even on a 100 MBit/s FTTH connection I hardly get more than 45 KB/s.
Probably many other people from Germany are facing the same issue, as I have seen this behavior on multiple connections from Deutsche Telekom (largest ISP in Germany). Probably a Fastly/AS54113 peering issue.
My Platform
DNS Resolution
Traceroutes
IPv4
IPv4
The text was updated successfully, but these errors were encountered: