Eos-rankmirrors news

The next version (24.1-1) of package eos-rankmirrors will include a new config variable EOS_RANK_WHEN_MIRRORLIST_CHANGES in file /etc/eos-rankmirrors.conf.

The variable enables or disables running eos-rankmirrors when package endeavouros-mirrorlist gets an update. Currently eos-rankmirrors will be executed in such condition.

The new package will be released later today, or tomorrow.

Edit 2025-Oct-29

  • Added the news table below.
  • Struck through the old information above.
Date Version Changes
2025-Oct-29 25.10.1-1 Support for parallel mirror ranking which makes it much faster. See
eos-rankmirrors -h
about new options --parallel and --sequential.
17 Likes

Hi all,
eos-rankmirrors ranks the EndeavourOS mirrors in parallel now making the task much faster. See the first post on this thread.

12 Likes

so, one would need to install the package parallel, if not present already, to run eos-rankmirrors with defaults settings :slight_smile:

cheers!

3 Likes

Yes.
Thanks for noticing it as it was not marked as a dependency. I will add it in the next release soon.

2 Likes

I’m quite mindful when ranking mirrors, of what other activity my system, and even other systems on the network are doing. I’d pick a quiet time to do it, so the benchmarking wasn’t impacted by unrelated fluctuations in the available bandwidth.

Perhaps you’ve accounted for this already @manuel, but here’s some thoughts if you don’t mind me sharing.

For example, lets say we have 100MiB available bandwidth on our connection.

If benchmarking in parallel, and the two fastest mirrors are tested simultaneously, the bandwidth might be evenly saturated, scoring an even split of 50MiB/s per mirror. If the full bandwidth had been available to each mirror when testing, lets say they would have scored 100MiB/s.
But then as testing continues, two new mirrors are tested. One mirror has ok speed, and the other is poor, the ok mirror might consume 60% of the available bandwidth with room to spare, because it wasn’t competing with another decent mirror, giving it a score of 60MiB/s.

In the rankings, the ok mirror scores #1, whilst the two (would be) faster mirrors are relegated to #2 and #3, because of the competing bandwidth when they were benchmarked.

This would be a more prominent issue on systems that have an Internet connection that is readily saturated by the benchmarking, and perhaps very low end hardware which may be loaded by a fast connection.

2 Likes

Thanks for the analysis.

Mirror ranking result depends on very many factors, and we have no reasonable control over all of them.
For example, the fastest mirror can be temporarily offline at the time we rank them thus giving a suboptimal mirror list.

So usually ranking gives only partially correct estimate. Better would be ranking at many different times and collecting results, this way we could really find the “best” overall list. But then again, a good mirror can go permanently offline…

Some notes about eos-rankmirrors:

  • The number of available EOS mirrors is quite small.
  • We can prefer the speed or the update level of mirrors.
  • We can rank mirrors in parallel or sequentially.
  • Speed is measured by fetching a very small file from each mirror, causing a very small amount of traffic beyond connection management.

Hope this helps seeing what eos-rankmirrors does to deal with this complexity.

2 Likes

Async ranking is nice.

But I might mention that most of the other utilities manage this without the parallel dep.

As per example: rate-mirrors.

Though with it (and supporting Arch, Cachy, EOS, +) one does not need any other tool, so :person_shrugging:.

2 Likes

this is more education I ever got about mirrors and how it works than I ever got from any source. thank you. and for the equally educating replies.

great thread

4 Likes

Installed by default during the distro install.

But on the other hand, pacman is using parallel downloads.

well… apparently not if your installation dates back to 2021…

without needing parallel, right?

1 Like

That’s right. The parallel download is a native feature in pacman built in to it. If memory serves me right, it was introduced in pacman 6.0.

2 Likes

My bad, you’re right.

1 Like

it is also that we need some playground for ranking inside installer at installtime, it is a problematic part and other tools do not work good too there in circumstances, thats a battlefield with constant work to do for us. And: no one have to use eos-rankmirrors your system your rules :wink:

:right_arrow: rate-mirrors is also supported by welcome if you install it will show as a button. it could have a second button to add using it with the endeavouros flag in welcome i think? @manuel

Sometimes i miss the positive vibe here.. ( a bit )

hey @manuel nice tool! I love to use it, and i love to give feedback and have a nice conversation around that a l l t h e t i m e! :purple_heart:

Users feedback and reporting about issues, improvement ideas e.t.c. will work to resolve issues and make it better and may having it a dependency less e.t.c, our tools are not the only perfect solution, its about errors too if you want to go forward and find new pathways. No progress without fails.

And a reminder:
Everyone is welcome to join development by pull requesting changes to the code too!

Only just me having a minute and reading this and some other threads., feeling like there is the need to remind all of us.

4 Likes
rate-mirrors endeavouros
real    0m12.480s
user    0m1.173s
sys     0m0.187s
eos-rankmirrors --ignore hacktegic,funami,leitecastro,sjtu

real    0m9.184s
user    0m1.314s
sys     0m1.047s
eos-rankmirrors
real    0m35.036s
user    0m1.410s
sys     0m1.167s

Proper options for apps do make a difference!
For example:

$ eos-rankmirrors --timeout 2
real  0m5,274s
user  0m1,401s
sys   0m0,553s

Naturally a timeout of 2 seconds (for each mirror) cannot be used everywhere, that’s why the default is 30 seconds.
Tip: see EOS_AUTORANK_TIMEOUT in /etc/eos-rankmirrors.conf.

Thanks, I’ll add it in the next release.

3 Likes

There is still a problem with this i guess. I just run it, “twice” with sudo and without, in both occasions, the app doesn’t “end” itself after it is done. I have to do ctrl+z or ctrl+c to close it. And even “maybe” that it did finish its job, when i do it like that, i get “Stopped sudo eos-rankmirrors” message and it feels like an error message.

What am i doing wrong here?

Well, Ctrl + Z suspends the job and stops it until you run fg so that won’t end the job. eos-rankmirrors is working here without sudo but it’s taking a while.

Well it was last updated yesterday so maybe you are not up to date ?

The output “gives the impression” that the app has finished its job. It actually lists the mirrors and their timings etc. But it doesn’t return back to the command prompt. It stays there.

I mean i switched to X11 yesterday, could this have done something? I don’t think so.

Version: 25.10.2-1

It does ask for your password, could it be that?