Skip to content

Latest commit

 

History

History
40 lines (27 loc) · 2.07 KB

README.md

File metadata and controls

40 lines (27 loc) · 2.07 KB

Fedora Mirror Speed Test

A python script to test every Fedora mirror so you can decide which one to use has the best download speed for you.

Why

As I searched for a Linux distro, Fedora was the one that I liked most, specially dnf over apt. The only problem for me was the download speed, for some reason the download speeds with dnf was always significantly lower than apt. In search for a solution I end up doing what everyone does which is to add fastestmirror=1 or fastestmirror=true to /etc/dnf/dnf.conf.

The problem with fastestmirror is that it chooses the best mirror in terms of latency and not download speed, so it didn't solved my problem. So I've writen this script so I can test every mirror and decide which one has the best download speed and manually edit the following files inside /etc/yum.repos.d/:

  • fedora.repo
  • fedora-updates.repo
  • fedora-modular.repo
  • fedora-updates-modular.repo

How to use

Requirements

Python 3.10

enlighten==1.10.2

xmltodict==0.12.0

And the package python-dnf which should be already installed, but if not, install it with: sudo dnf install python-dnf.

Settings

At the begining of the script there are some variables you can adjust:

  • PACKAGE: the complete name (with extension) of a package to download, the package should be big enough so there's time to stablelize the download speed.
  • TIMEOUT: time in seconds that the download has to be completed before the script skips to the next mirror. Needs to be big enough so the download speed can stablelize.
  • CONCURRENT: how many mirrors to be evaluated at the same time.
  • SAVE_LOCATION: where to save the temporary packages and at the end, the Results.txt. Leave blank '' for the default, which is /$home/$user/Downloads

Be advised

I made this script for personal use, I'm sharing it AS IS because it might help somebody. I do not pretend to give any form of help or update the script in any way.