Zypper is running remarkably slow

I recently performed a clean installation of Tumbleweed. However, I’ve encountered an issue with the zypper, which is running significantly slower than expected. Below, I present my observations and findings.

In summary,

  • Repositories: openSUSE-repos (service), NVidia (service), Pacman, Google Chrome, VSCode
  • Forced Refresh: 8 min 4 sec
  • Refresh: 1 min 27 sec
  • Distro Upgrade: 8 min 32 sec (72 packages / 77 MB)

My repo list:

ismet@localhost:~> zypper lr -EAs
Repository priorities in effect:                                                                    (See 'zypper lr -P' for details)
      90 (raised priority)  :  1 repository
      99 (default priority) :  9 repositories

#  | Alias                      | Name               | Enabled | GPG Check | Refresh | URI                                                                     | Service
---+----------------------------+--------------------+---------+-----------+---------+-------------------------------------------------------------------------+---------
 1 | NVIDIA:repo-non-free       | repo-non-free      | Yes     | (r ) Yes  | Yes     | https://download.nvidia.com/opensuse/tumbleweed/                        | NVIDIA
 5 | google-chrome              | google-chrome      | Yes     | (r ) Yes  | Yes     | https://dl.google.com/linux/chrome/rpm/stable/x86_64                    | 
 7 | openSUSE:repo-non-oss      | repo-non-oss       | Yes     | (r ) Yes  | Yes     | http://cdn.opensuse.org/tumbleweed//repo/non-oss                        | openSUSE
 8 | openSUSE:repo-openh264     | repo-openh264      | Yes     | (r ) Yes  | Yes     | http://codecs.opensuse.org/openh264/openSUSE_Tumbleweed                 | openSUSE
 9 | openSUSE:repo-oss          | repo-oss           | Yes     | (r ) Yes  | Yes     | http://cdn.opensuse.org/tumbleweed//repo/oss                            | openSUSE
10 | openSUSE:repo-oss-debug    | repo-oss-debug     | Yes     | (r ) Yes  | Yes     | http://cdn.opensuse.org/debug/tumbleweed//repo/oss                      | openSUSE
11 | openSUSE:repo-oss-source   | repo-oss-source    | Yes     | (r ) Yes  | Yes     | http://cdn.opensuse.org/source/tumbleweed//repo/oss                     | openSUSE
12 | openSUSE:update-tumbleweed | update-tumbleweed  | Yes     | (r ) Yes  | Yes     | http://cdn.opensuse.org/update/tumbleweed/                              | openSUSE
13 | packman                    | Packman            | Yes     | (r ) Yes  | Yes     | https://mirror.karneval.cz/pub/linux/packman//suse/openSUSE_Tumbleweed/ | 
17 | vscode                     | Visual Studio Code | Yes     | (r ) Yes  | Yes     | https://packages.microsoft.com/yumrepos/vscode 

I cleared the repository cache and performed two consecutive refresh operations to measure their execution times:

ismet@localhost:~> sudo zypper clean -a
All repositories have been cleaned up.
ismet@localhost:~> time sudo zypper ref
Retrieving repository 'repo-non-free' metadata ................................................................................[done]
Building repository 'repo-non-free' cache .....................................................................................[done]
Retrieving repository 'google-chrome' metadata ................................................................................[done]
Building repository 'google-chrome' cache .....................................................................................[done]
Retrieving repository 'repo-non-oss' metadata .................................................................................[done]
Building repository 'repo-non-oss' cache ......................................................................................[done]
Retrieving repository 'repo-openh264' metadata ................................................................................[done]
Building repository 'repo-openh264' cache .....................................................................................[done]
Retrieving repository 'repo-oss' metadata .....................................................................................[done]
Building repository 'repo-oss' cache ..........................................................................................[done]
Retrieving repository 'repo-oss-debug' metadata ...............................................................................[done]
Building repository 'repo-oss-debug' cache ....................................................................................[done]
Retrieving repository 'repo-oss-source' metadata ..............................................................................[done]
Building repository 'repo-oss-source' cache ...................................................................................[done]
Retrieving repository 'update-tumbleweed' metadata ............................................................................[done]
Building repository 'update-tumbleweed' cache .................................................................................[done]
Retrieving repository 'Packman' metadata ......................................................................................[done]
Building repository 'Packman' cache ...........................................................................................[done]
Retrieving repository 'Visual Studio Code' metadata ...........................................................................[done]
Building repository 'Visual Studio Code' cache ................................................................................[done]
All repositories have been refreshed.

real    8m4.024s
user    0m0.057s
sys     0m0.081s
ismet@localhost:~> time sudo zypper ref
Repository 'repo-non-free' is up to date.                                                                                            
Repository 'google-chrome' is up to date.                                                                                            
Repository 'repo-non-oss' is up to date.                                                                                             
Repository 'repo-openh264' is up to date.                                                                                            
Repository 'repo-oss' is up to date.                                                                                                 
Repository 'repo-oss-debug' is up to date.                                                                                           
Repository 'repo-oss-source' is up to date.                                                                                          
Repository 'update-tumbleweed' is up to date.                                                                                        
Repository 'Packman' is up to date.                                                                                                  
Repository 'Visual Studio Code' is up to date.                                                                                       
All repositories have been refreshed.

real    1m27.068s
user    0m0.029s
sys     0m0.013s

Then, I run distro upgrade:

ismet@localhost:~> time sudo zypper dup
Refreshing service 'NVIDIA'.
Refreshing service 'openSUSE'.
Loading repository data...
Reading installed packages...
Warning: You are about to do a distribution upgrade with all enabled repositories. Make sure these repositories are compatible before you continue. See 'man zypper' for more information about this command.
Computing distribution upgrade...

The following 72 packages are going to be upgraded:
  branding-openSUSE ffmpeg-6 gdk-pixbuf-loader-libheif grub2-branding-openSUSE gstreamer-plugins-bad-codecs
  gstreamer-plugins-ugly-codecs libavcodec58_134 libavcodec60 libavdevice60 libavfilter9 libavformat58_76 libavformat60
  libavutil56_70 libavutil58 libde265-0 libfaac0 libfaad2 libfdk-aac2 libgbm1 libheif1 libheif-aom libheif-dav1d libheif-ffmpeg
  libheif-jpeg libheif-openjpeg libheif-rav1e libheif-svtenc libopenaptx0 libpostproc55_9 libpostproc57 libquicktime0
  libreoffice-branding-openSUSE librist4 librpmbuild10 librtmp1 libswresample3_9 libswresample4 libswscale5_9 libswscale7
  libvdpau_nouveau libvlc5 libvlccore9 libvo-aacenc0 libvulkan_intel libx264-164 libx265-199 libxvidcore4 Mesa Mesa-dri Mesa-gallium
  Mesa-libEGL1 Mesa-libGL1 Mesa-libglapi0 Mesa-libva Mesa-vulkan-device-select openSUSE-release openSUSE-release-ftp pipewire-aptx
  plymouth-branding-openSUSE python311-rpm rpm rpm-build rpm-build-perl vlc vlc-codec-gstreamer vlc-codecs vlc-lang vlc-noX vlc-qt
  vlc-vdpau wallpaper-branding-openSUSE yast2-qt-branding-openSUSE

The following product is going to be upgraded:
  openSUSE Tumbleweed  20240212-0 -> 20240213-0

72 packages to upgrade.
Overall download size: 77.8 MiB. Already cached: 0 B. After the operation, 12.0 B will be freed.
Continue? [y/n/v/...? shows all options] (y): 
Retrieving: ..... (OMITTED FOR CLARITY)

Checking for file conflicts: ..................................................................................................[done]
Installing: ..... (OMITTED FOR CLARITY)
Running post-transaction scripts ..............................................................................................[done]

real    8m32.012s
user    0m0.075s
sys     0m0.116s

I am currently utilizing a 100Mbps internet connection in Turkey. Additionally, I have assessed the ping values for openSUSE CDN servers:

ismet@localhost:~> ping cdn.opensuse.org
PING dualstack.n.sni.global.fastly.net (151.101.129.91) 56(84) bytes of data.
64 bytes from 151.101.129.91: icmp_seq=1 ttl=52 time=52.4 ms
64 bytes from 151.101.129.91: icmp_seq=2 ttl=52 time=52.2 ms
64 bytes from 151.101.129.91: icmp_seq=3 ttl=52 time=52.0 ms
64 bytes from 151.101.129.91: icmp_seq=4 ttl=52 time=52.6 ms
64 bytes from 151.101.129.91: icmp_seq=5 ttl=52 time=52.1 ms
64 bytes from 151.101.129.91: icmp_seq=6 ttl=52 time=62.6 ms
64 bytes from 151.101.129.91: icmp_seq=7 ttl=52 time=52.4 ms
^C
--- dualstack.n.sni.global.fastly.net ping statistics ---
7 packets transmitted, 7 received, 0% packet loss, time 6009ms
rtt min/avg/max/mdev = 52.013/53.757/62.552/3.595 ms

Prior to performing a clean installation of openSUSE Tumbleweed, I experienced significantly faster performance, with operations completing within seconds rather than minutes. I would appreciate any insights or recommendations to address this issue. :wave: