Is there anyway to speed up ZYpp's downloading of packages?

Hi,

The package managers of other distros often have methods built into them to speed up package downloads. Like DNF and APT can do multiple simultaneous package downloads, while pacman can be configured to use aria2 and has a tool to optimize the mirrors used for download speed and APT has an unofficial wrapper called apt-fast that uses aria2 to speed up package downloads. I know that ZYpp used to have aria2 support and it does not seem capable of doing multiple simultaneous downloads. My Tumbleweed system is taking forever to download the latest snapshot (20180613) and I’d like to know how I can speed things up.

Thanks for your time,
Brenton

The reason the latest updates takes long this time is I think that many packages are updated:

The following product is going to be upgraded:
  openSUSE Tumbleweed  20180606-0 -> 20180613-0

3009 packages to upgrade, 12 new, 1 to remove.

Not sure why this time there are 3000+ packages, normally I see in the order of 300 packages.

For me, doing the download in parallel will not buy too much as I see my Internet connection is most of the time maxed out.

My package downloads are averaging at <100 KB/s, while my internet is capable of >5 MB/s. So for me, at least, multiple package downloads would greatly help.

You can try what I do to override a slow closest mirror with a faster mirror:

 # grep ad.min /etc/zypp/zypp.conf
 download.min_download_speed = 20000

Normally the download.min… line is a comment line. Adjust the number to taste.

20MB/s connection, 200KB/s download, or 1% of my connection, lol. Better than 20KB/s I guess.

Thanks, I was recommended (on Reddit) to manually set mirrors and mess around with that, trial and error until I got the download speeds I wanted. I was getting 100-200 KB/s downloads at best with that method, now > 300 KB/s. I did so by editing that line to 102400 (100 KB) and uncommenting the max connections line and setting it to 10.

My update speed was arount 20% of what I usually see.

I doubt that speed-up suggestions would have helped much.

This was a larger update than usual. Many client computers were updating at the same time, partly because there had not been an update for a while. We probably had the servers maxed out.

I failed to get one of my machines upgraded today, every time I checked it said abort, retry, ignore. Plus I had to uninstall ghc* packages due to failed signatures. I have to take off and it’s still some packages away, so I’ll try again next weekend. Even more packages a week from now, sigh.

I don’t know if it’s any faster to download all the packages first without installing as you go…

zypper -l -y dup --dry-run

Other options from the zypper MAN pages

       Download-and-install mode options:
       -d, --download-only
           Only download the packages for later installation.
       --download-in-advance
           First download all packages, then start installing.
       --download-in-heaps
           Download a minimal set of packages that can be installed without leaving the system in broken state,
           and install them. Then download and install another heap until all are installed. This helps to keep
           the system in consistent state without the need to download all packages in advance, which combines
           the advantages of --download-in-advance and --download-as-needed. This is the default mode.
           NOTE: While the resolver is not capable of building heaps, this behaves the same as
           --download-in-advance.
       --download-as-needed
           Download one package, install it immediately, and continue with the rest until all are installed.
       --download mode
           Use the specified download-and-install mode. Available modes are: only, in-advance, in-heaps,
           as-needed. See corresponding --download-mode options for their description.
       Examples:
           $ zypper install -t pattern lamp_server
               Install lamp_server pattern.
           $ zypper install --no-recommends gv
               Install GhostScript viewer, but ignore recommended packages.
           $ zypper install virtualbox-ose-2.0.6
           $ zypper install virtualbox-ose=2.0.6
           $ zypper install virtualbox-ose = 2.0.6                    Install version 2.0.6 of virtualbox-ose package.

TSU

I am using the official URLs for the repos. This implies redirection by MirrorBrain. It works well in Erlangen, Germany and I always get the maximum download speed for ADSL 2+. Distance to the DSLAM is 2,500 m, resulting in some 10 Mbit/s.

You are free to bypass MirrorBrain. E.g. I can use Index of /opensuse/tumbleweed/repo/oss instead of http://download.opensuse.org/tumbleweed/repo/oss/ It sits across town and is part of Wissenschaftsnetz X-WiN, which has Multi Terabit capabilities. YMMV.

Downloading and installing 20180613-0 (3600 packages, 2.4GB) was a smooth experience.