Comments (3)
The problem may be related to CDNs like cloudflare. If the connection is not made to the actual mirror, but just the CDN, then the latency will obviously be very low. This doesn't necessarily mean that this is an apt mirror for this particular user: Maybe the CDN was just able to deliver the core.db
file relatively fast because it was already cached, but then turns out to be very slow when downloading a larger file that is not frequently accessed.
One option would be to simply exclude all mirrors that use cloudflare: https://www.cloudflare.com/ips/. In our application, the primary_ip
function can be used to determine the IP of the remote server. However, we would first have to check how many mirrors we would be excluding this way.
from flexo.
Another thing to consider:
- Many mirrors don't support IPv6, but the current default setting is to exclude all those mirrors.
- We currently exclude all mirrors whose "score" is below 2.5 (the score provided by the JSON API at https://www.archlinux.org/mirrors/status/json/), but we haven't verified if this score is really a meaningful measure. At first glance, the score value seems to be biased towards European servers, which may be one of the reason why some users from the US or Australia get mirrors from Europe.
from flexo.
A few improvements have been made in this regard, so if you previously had issues, then please upgrade Flexo, delete the /var/cache/flexo/state/latency_test_results.json
file and restart Flexo to see if things have improved. If they haven't, please comment.
Improvements so far:
- Cloudflare mirrors are excluded (see #31 for more details).
- Users can specify a country whitelist, check the
allowed_countries
setting in flexo.toml for more details. - The
mirrors_auto.ipv6
setting had its default value changed fromtrue
tofalse
: This should be useful if there are very few mirrors with IPv6 support in your region.
I just tested this by running flexo on a server located in Australia, and on another server located in the US, and the results where as expected: The server from Australia only uses mirrors from Australia, and the server located in the US only uses mirrors located in the US and Canada.
from flexo.
Related Issues (20)
- add liveness/readyness enpoints HOT 3
- Feature Request: Object Storage (S3) HOT 3
- [Potential Bug] DemarshallError(Error("unknown variant `ftp`, expected one of `http`, `https`, `rsync`", line: 1, column: 227697)) HOT 3
- [Potential Bug] JSON fallback is not used
- Docker `latest` tag not updated HOT 1
- Flexo docker fails to start: "No such file or directory", then "Unable to fetch mirrors remotely" HOT 2
- [feature request] Prefetch HOT 4
- [Potential Bug] High CPU useage due to stuck fetch cycle HOT 5
- Crash on startup HOT 2
- Periodically update the cache? HOT 2
- Integration tests failing on latest build HOT 4
- Mirrors timing out in docker HOT 7
- Error compiling rustc-serialize HOT 1
- signature from <package> is invalid HOT 23
- Listen to multiple IPs HOT 1
- ARM cache issues HOT 1
- Panic on nonexistent `latency_test_results.json` due to invalid status.json format HOT 1
- Implement support for Manjaro
- Flexo stops working from time to time HOT 2
- Different mirrors serving the same package with different size HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from flexo.