My config for reflector is currently set as follows:
# Set the output path where the mirrorlist will be saved.
--save /etc/pacman.d/mirrorlist
# Select the transfer protocol.
--protocol https
# Use only the most recently synchronized mirrors.
--latest 200
# Sort the mirrors by synchronization time.
--sort rate
# Return, at most, the following number of mirrors.
--number 20
# Print extra info.
--verbose
I have Reflector set to run as a Systemd service, so it will run when my computer boots.
The “issue” is that I update my system as soon as I boot. Since Reflector is sorting mirrors by their measured download rate, I wonder if downloading updates, or simply doing any action that downloads data, would interfere with those measurements and cause Reflector to choose mirrors that may not be the fastest. I could simply wait for Reflector to finish before using the computer, but it takes quite a while to sort through 200 mirrors.
Is this concern justified? If so, are there ways to mitigate it that don’t require me to wait for Reflector to finish? I’ve thought about setting it as a Pacman hook so that it runs after updating, but, then, that relies on me to perform an update for the mirrorlist to be refreshed, and that still leaves the concern of other actions eating up network bandwidth, thus skewing the measurements.
You could replace the systemd service with a systemd timer. Not sure how often you reboot, but maybe once a week would be sufficient?
You could then wrap it in a script that checks for packman’s db.lock file. It would sleep as long as the lock file is present, which indicates that an update is active.
Usually every day.
Whether it’s sufficient is mostly dependent on how volatile the mirrors are, which I’m not entirely aware of.