Fedora 33 slow IO/kernel comparing to others

Hey there. I’ve been using Fedora 33 for quite some time right now and I since I often switch distributions, I’ve noticed that Fedora’s performance isn’t top-notch, heck, it isn’t even close to the “competitors”. Here’s what I am talking about.

I do my daily web development using Docker. Before Fedora 33 got an official repository for Docker CE, I’ve used moby-engine, but performance is more or less the same.

MySQL (native) and Docker are having really bad I/O performance. I don’t want this thread to be too long, but here’s what’s the problem:

I am importing this MySQL dump (https://raw.githubusercontent.com/invoiceninja/invoiceninja/v5-develop/database/schema/db-ninja-01-schema.dump ).

All these numbers are tested on the same hardware (not virtualisation). Here’s what I was able to get:

Fedora 33 (5,10, ext4, native MariaDB (not Docker)) ~ 2500ms
Fedora 33 (5.10, ext4, Docker MariaDB) ~ 3200+ ms
Arch Linux (5.10, ext4, Docker) ~ 420ms
WSL2 Ubuntu 20.04 (4.2, Docker) ~ 560ms.
Ubuntu 18.04 ~1000ms.

Can someone guide me, what’s the deal here?

Here’s what I’ve tried:

What could be the deal here? I really love Fedora & don’t want to give it up, so… I’d love to find out what’s wrong here.

For the sake of testing, I still have Fedora 33 (btrfs) and WSL2 Ubuntu 20.04 installed, so I can debug stuff.

Thanks in advance!

4 Likes

Solved. Install Fedora using XFS.

Ended up with 250ms using Docker :tada:

1 Like

That’s weird that docker would slow down that much on EXT4. May be worth a bug report. If you have the time, I would also recommend podman and see if the issue persists with it. It is almost completely docker compatible, and tends to work better around the general red hat platform.

Ah, it’s not only Docker, tho. Native MySQL is also slower :confused: Definitely, something’s wrong, since Arch + ext4 is 3-5x faster :+1:

Was the docker container built on fedora? Could it be an issue in our MySQL package? Fedora workstation and server default to BTRFS and XFS, respectively, so perhaps a bug made its way through.

Nope. Using “vanilla” MariaDB/MySQL images. Also, I noticed php-fpm is also slower, but I wasn’t able to benchmark it.

  mariadb:
    image: mariadb:latest
    container_name: invoiceninja5-mariadb
    tty: true
    command: --default-authentication-plugin=mysql_native_password
    environment:
      MYSQL_DATABASE: ${DB_DATABASE1}
      MYSQL_ROOT_PASSWORD: ${DB_PASSWORD1}
      MYSQL_PASSWORD: ${DB_PASSWORD1}
      MYSQL_USER: ${DB_USERNAME1}
      SERVICE_TAGS: dev
      SERVICE_NAME: mysql
    volumes:
      - mysql-data:/var/lib/mysql

volumes:
  mysql-data:

I remember trying the Podman, no noticeable difference.