Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-27772

Performance regression with default configuration in 10.6

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Open (View Workflow)
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 10.6
    • Fix Version/s: None
    • Component/s: Server
    • Labels:
      None
    • Environment:
      SUSE Enterprise Linux 15 SP4, openSUSE Tumbleweed

      Description

      MariaDB 10.6 has O_DIRECT value as default for innodb_flush_method instead of fsync. This lead to a performance regression in the default configuration, regardless of the filesystem used.
      To benchmark the performance, I have used sysbench-0.4.8 oltp read test on btrfs (the most affected), ext4 and xfs.

      Filesystem threads innodb_flush_method=fsync innodb_flush_method=O_DIRECT
      ext4 1 6.5s 7.0s
      ext4 16 0.97s 1.15s
      brtfs 1 6.5s 77s
      brtfs 16 0.8s 3.1s
      xfs 1 6.4s 7.2s
      xfs 16 0.8s 1.1s

      I have used a mount point in /abuild and the following configuration in /etc/my.cnf.d/sysbench_testing.cnf:

      [mysqld]
      port = 3306
      datadir=/abuild/mysql-sysbench
      socket=/abuild/mysql-sysbench/sysbench-mysql.sock
      #innodb_flush_method=fsync
      

      To reproduce, run the following commands:

      $ # prepare the db
      $ sysbench --test=oltp --mysql-user=root \
             --mysql-socket=/abuild/mysql-sysbench/sysbench-mysql.sock \
             --mysql-db=test --mysql-port=3306 \
             --oltp-dist-type=uniform --oltp-read-only --oltp-order-ranges=0 \
             --oltp-table-size=1000000 --oltp-range-size=1000 prepare
      $ # run the benchmark
      $ sysbench --test=oltp --mysql-user=root \
             --mysql-socket=/abuild/mysql-sysbench/sysbench-mysql.sock \
             --mysql-db=test --mysql-port=3306 \
             --oltp-dist-type=uniform --oltp-read-only --oltp-order-ranges=0 \
             --oltp-table-size=1000000 --oltp-range-size=1000 \
             --num-threads=$NTHREADS run
      $ # cleanup the db
      $ sysbench --test=oltp --mysql-user=root \
               --mysql-socket=/abuild/mysql-sysbench/sysbench-mysql.sock \
      	 --mysql-db=test --mysql-port=3306  cleanup >/dev/null 1>&2
      

      I am also aware that some testing by some colleague lead to similar regression in xfs (353.5476s in 10.6 vs 16.9560s in 10.5).

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              Unassigned Unassigned
              Reporter:
              danyspin97 Danilo Spinella
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

                Dates

                Created:
                Updated:

                  Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.