Skip to content

Podman takes several minutes to load a compressed .tar.xz file #19779

Closed

Description

Issue Description

The issue we are facing is that when we load podman images that are compressed .tar.xz. These .tar.xz files have multiple podman images in them. When we load this file, it takes several minutes to complete the load. The first 4 minutes are it just sitting there, the last 30 seconds is work actually being done as we see the images being loaded.

The reason for this bug is that docker (via docker images, not podman) loads its version of the compressed .tar.xz file in like 30 seconds.

4m30s vs 30s.

Why is Podman taking so long? And yes, both files are roughly the same size.

I have tried this on my workstation (I9 9900K) and home VM (Ryzen 7 7700X). Both are using Fedora33 VM with 4 CPUs. So yeah I could increase VM specs, but that wouldn't be realistic to what I have at work. Also wouldn't solve the issue as Docker tar.xz loads just fine.

Tried on Podman 2.1.1 and 3.3.1.

Steps to reproduce the issue

Steps to reproduce the issue

  1. Load Fedora 33 VM
  2. Install 3.3.1 Podman
  • sudo dnf install podman-docker-3:3.3.1-1.fc33.noarch
  1. Load public images to simulate number and size of work images
  • sudo podman pull cockroachdb/cockroach:latest
  • sudo podman pull minio/minio:RELEASE.2023-08-23T10-07-06Z.fips
  • sudo podman pull minio/mc:latest
  • sudo podman pull alpine:latest
  • sudo podman pull busybox:latest
  • sudo podman pull docker:latest
  • sudo podman pull rabbitmq:latest
  1. Save multiple podman images to singular compressed .tar.xz. This will take 5-10 minutes.
    sudo podman save -m \
    docker.io/library/rabbitmq:latest \
    docker.io/minio/mc:latest \
    docker.io/minio/minio:RELEASE.2023-08-23T10-07-06Z.fips \
    docker.io/library/alpine:latest \
    docker.io/cockroachdb/cockroach:latest \
    docker.io/library/docker:latest \
    docker.io/library/busybox:latest | xz > ImagesPodmanCompressed.tar.xz
  2. Clear out podman images so you can then load this file again.
  • sudo podman rmi $(sudo podman images -q)
  1. Load this ImagesPodmanCompressed.tar.xz file. Notice how it just sits there for several minutes (BAD) before it begins work.
  • time sudo podman load -i ImagesPodmanCompressed.tar.xz

Describe the results you received

Notice how it just sits there for several minutes (BAD) before it begins work. It takes 4m30s for Podman to load this type of file but it only takes Docker 30s.

Describe the results you expected

Images should start to load immediately. This is the behavior of Docker for this same type of singular compressed .tar.zx.

podman info output

host:
  arch: amd64
  buildahVersion: 1.22.3
  cgroupControllers: []
  cgroupManager: systemd
  cgroupVersion: v2
  conmon:
    package: conmon-2.0.27-2.fc33.x86_64
    path: /usr/bin/conmon
    version: 'conmon version 2.0.27, commit: '
  cpus: 4
  distribution:
    distribution: fedora
    version: "33"
  eventLogger: journald
  hostname: localhost.localdomain
  idMappings:
    gidmap:
    - container_id: 0
      host_id: 1000
      size: 1
    - container_id: 1
      host_id: 100000
      size: 65536
    uidmap:
    - container_id: 0
      host_id: 1000
      size: 1
    - container_id: 1
      host_id: 100000
      size: 65536
  kernel: 5.8.15-301.fc33.x86_64
  linkmode: dynamic
  memFree: 3793604608
  memTotal: 12334272512
  ociRuntime:
    name: crun
    package: crun-0.15-5.fc33.x86_64
    path: /usr/bin/crun
    version: |-
      crun version 0.15
      commit: 56ca95e61639510c7dbd39ff512f80f626404969
      spec: 1.0.0
      +SYSTEMD +SELINUX +APPARMOR +CAP +SECCOMP +EBPF +YAJL
  os: linux
  remoteSocket:
    path: /run/user/1000/podman/podman.sock
  security:
    apparmorEnabled: false
    capabilities: AP_CHOWN,CAP_DAC_OVERRIDE,CAP_FOWNER,CAP_FSETID,CAP_KILL,CAP_NET_BIND_SERVICE,CAP_SETFCAP,CAP_SETGID,CAPSETPCAP,CAP_SETUID,CAP_SYS_CHROOT
    rootless: true
    seccompEnabled: true
    seccompProfilePath: /usr/share/containers/seccomp.json
    selinuxEnabled: true
  serviceIsRemote: false
  slirp4netns:
    executable: /usr/bin/slirp4netns
    package: slirp4netns-1.1.4-4.dev.giteecccdb.fc33.x86_64
    version: |-
      slirp4netns version 1.1.4+dev
      commit: eecccdb96f587b11d7764556ffacfeaffe4b6e11
      libslirp: 4.3.1
      SLIRP_CONFIG_VERSION_MAX: 3
      libseccomp: 2.5.0
  swapFree: 4294963200
  swapTotal: 4294963200
  uptime: 2h 45m 30.77s (Approximately 0.08 days)
registries:
  search:
  - registry.fedoraproject.org
  - registry.access.redhat.com
  - docker.io
store:
  configFile: /home/user/.config/containers/storage.conf
  containerStore:
    number: 0
    paused: 0
    running: 0
    stopped: 0
  graphDriverName: overlay
  graphOptions:
    overlay.mount_program:
      Executable: /usr/bin/fuse-overlayfs
      Package: fuse-overlayfs-1.1.2-1.fc33.x86_64
      Version: |-
        fusermount3 version: 3.9.3
        fuse-overlayfs: version 1.1.0
        FUSE library version 3.9.3
        using FUSE kernel interface version 7.31
  graphRoot: /home/user/.local/share/containers/storage
  graphStatus:
    Backing Filesystem: btrfs
    Native Overlay Diff: "false"
    Supports d_type: "true"
    Using metacopy: "false"
  imageStore:
    number: 0
  runRoot: /run/user/1000/containers
  volumePath: /home/user/.local/share/containers/storage/volumes
version:
  APIVersion: 3.3.1
  Built: 1630356406
  BuiltTime: Mon Aug 30 16:46:46 2021
  GitCommit: ""
  GoVersion: go1.15.14
  OsArch: linux/amd64
  Version: 3.3.1

Podman in a container

No

Privileged Or Rootless

None

Upstream Latest Release

No

Additional environment details

Workstation:
I9 9900K
16 GB ram
Windows 10
Oracle VM VirtualBox, Fedora 33, 4cpu/8gb ram
Podman version 2.1.1
File takes about 4m30s to load

Home PC:
Ryzen 7 7700X
32GB ram
Windows 10
Oracle VM VirtualBox, Fedora 33, 4cpu/16gb ram
Podman version 3.3.1
File takes about 3min to load

Additional information

None

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    kind/bugCategorizes issue or PR as related to a bug.locked - please file new issue/PRAssist humans wanting to comment on an old issue or PR with locked comments.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions